window11下Jenkins+Docker 实现一键自动化部署项目(原创原创)
1.安装jdk
这个就不写了,自行百度,我这边装了两个版本的,jenkins要求11或17,所以装的jdk11,环境发布用的是jdk8
2.安装docker
官方地址:https://dockerdocs.cn/docker-for-windows/install/index.html
看不明白的直接看第二条就行,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
备注:
- 我上图用了
docker logs -f
是为了方便看日志,真实不要用,因为会一直等待日志,构建任务会失败 - 加
|| true
是如果命令执行失败也会继续实行,为了防止第一次没有该镜像报错
3. 保存
点击保存即可
4. 构建
查看jenkins控制台输出,输出如下,证明成功!
5. 验证
docker ps
查看是否有自己的容器docker logs
自己的容器名 查看日志是否正确- 浏览器访问项目试一试
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
图片
本文来自博客园,作者:小陈子博客,转载请注明原文链接:https://www.cnblogs.com/cj8357475/p/17252388.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人