window11下Jenkins+Docker 实现一键自动化部署项目(原创原创)

1.安装jdk

这个就不写了,自行百度,我这边装了两个版本的,jenkins要求11或17,所以装的jdk11,环境发布用的是jdk8

2.安装docker

官方地址:https://dockerdocs.cn/docker-for-windows/install/index.html

参考地址:https://blog.csdn.net/weixin_43841924/article/details/125600106?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167964484416800217244672%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167964484416800217244672&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-125600106-null-null.blog_rank_default&utm_term=docker&spm=1018.2226.3001.4450

下载地址:http://docker.p2hp.com/

看不明白的直接看第二条就行,docker下载原链接不行,用我第三个链接,docker中文网的链接

 

 

3.安装jenkins

https://blog.csdn.net/qq_57756904/article/details/125932047

唯一的不同是我jenkins 服务登录凭证选用的要使用本地,jenkins 版本Version 2.396,所以依赖的jdk是11

4.jenkins参数配置

进入【首页】–【系统管理】–【插件管理】–【可选插件】

 

 

 

 

 

 

 

 

 

 

搜索以下需要安装的插件,点击安装即可。

 

 

 

 

  • 安装Maven Integration
  • 安装Publish Over SSH(如果不需要远程推送,不用安装)
  • 如果使用Gitee 码云,安装插件Gitee(Git自带不用安装)

配置Maven

进入【首页】–【系统管理】–【全局配置】,拉到最下面maven–maven安装

 

 

 

 

 

5.创建任务

1. 新建任务

点击【新建任务】,输入任务名称,点击构建一个自由风格的软件项目

 

 

 

2. 源码管理

点击【源码管理】–【Git】,输入仓库地址,添加凭证,选择好凭证即可。

 

 

 

 

 

 

3.构建触发器

点击【构建触发器】–【构建】–【增加构建步骤】–【调用顶层Maven目标】–【填写配置】–【保存】

 

 

 

 

 

 

此处命令只是install,看是否能生成jar包

clean install -Dmaven.test.skip=true

4. 保存

点击【保存】按钮即可

6.测试

该功能测试是否能正常打包

1. 构建

点击构建按钮

 

 

 

 

2.查看日志

点击正在构建的任务,或者点击任务名称,进入详情页面,查看控制台输出,看是否能成功打成jar包。

该处日志第一次可能下载依赖jar包失败,再次点击构建即可成功。

 

 

 

 

 

 

 

3. 查看项目位置

 

 

 

7.运行项目

因为我们项目和jenkins在同一台服务器,所以我们用shell脚本运行项目,原理既是通过dockerfile 打包镜像,然后docker运行即可。

1. Dockerfile

在springboot项目根目录新建一个名为Dockerfile的文件,注意没有后缀名,其内容如下:(大致就是使用jdk8,把jar包添加到docker然后运行prd配置文件。详细可以查看其他教程)

 

 

 

复制代码
# 该镜像需要依赖的基础镜像
FROM java:8
# 将当前目录下的jar包复制到docker容器的/目录下
ADD ./target/mall-tiny-docker-file-0.0.1-SNAPSHOT.jar /mall-tiny-docker-file.jar
# 运行过程中创建一个mall-tiny-docker-file.jar文件
RUN bash -c 'touch /mall-tiny-docker-file.jar'
# 声明服务运行在8080端口
EXPOSE 8910
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java", "-jar","/mall-tiny-docker-file.jar"]
# 指定维护者的名字
MAINTAINER chenjie
复制代码

2. 修改jenkins任务配置

 

 

 

 

 

配置如下:

 

 

 

 

 

 

  • -t:指定新镜像名
  • .:表示Dockfile在当前路径
cd C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\mall-tiny-docker-file
docker stop mall-tiny-docker-file || true
docker rm mall-tiny-docker-file || true
docker rmi mall-tiny-docker-file || true
docker build -t mall-tiny-docker-file .
docker run -d -p 8910:8910 --name mall-tiny-docker-file mall-tiny-docker-file:latest

 

备注:

  1. 我上图用了docker logs -f 是为了方便看日志,真实不要用,因为会一直等待日志,构建任务会失败
  2. || true 是如果命令执行失败也会继续实行,为了防止第一次没有该镜像报错

3. 保存

点击保存即可

4. 构建

查看jenkins控制台输出,输出如下,证明成功!

 

 

 

 

 

 

 

5. 验证

  1. docker ps 查看是否有自己的容器
  2. docker logs 自己的容器名 查看日志是否正确
  3. 浏览器访问项目试一试

 

 

http://127.0.0.1:8910/brand/test

6.遇到的bug问题

找不到sh

 

 

 解决方案:用git的sh

参考地址:https://blog.csdn.net/qq_40259641/article/details/106190598

 

目录不对的问题

 

解决方案:双斜杠

 

 docker命令找不到的问题

 

 解决方案:因为没有配置全局的参数配置

参考地址1:https://blog.csdn.net/m0_45806184/article/details/128079970

参考地址2:https://www.jianshu.com/p/4f9bb405ef9e

 

 

 

 找不到dockerfile

 

解决方案:dockerfile放到项目的根目录下

 

 

 dockerfile文件出错,找不到包

 

 解决方案:配置路径问题,增加./target

 远程连接ssh使用在这里

我现在不想在本地启动服务,现在购买了一台云服务器,想要部署怎么办

 

 

 

 

 

解决方案:https://blog.csdn.net/qq_42108331/article/details/132446589

 

图片

 

 

 

 

 

 

 

 

posted @   小陈子博客  阅读(601)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示