😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志
🎐 个人CSND主页——Micro麦可乐的博客
🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战
🌺《RabbitMQ》本专栏主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战
🌸《设计模式》专栏以实际的生活场景为案例进行讲解,让大家对设计模式有一个更清晰的理解
💕《Jenkins实战》专栏主要介绍Jenkins+Docker+Git+Maven的实战教程,让你快速掌握项目CI/CD,是2024年最新的实战教程
如果文章能够给大家带来一定的帮助!欢迎关注、评论互动~
Jenkins + Docker + Git + Maven 实战教程(四) - 编写自己的Springboot项目实现自动化部署
- 前言
- 构建前准备
- 开始配置Jenkins
- 构建测试
- 结语
前言
上一章节中虽然我们实现了自动化的部署,但是官方的DEMO中并没有Dockerfile文件,我们还是需要手动构建,本章节我们自己编写一个简单的SpringBoot
项目实现自动化部署,从代码编写到上传Gitee
再到Jenkins
自动化部署。
整体流程如下:
构建前准备
在开始Jenkins
自动化部署前,我们需要执行如下操作
1、注册Gitee账号
2、创建Git仓库
3、IDEA安装Gitee插件
4、Gitee插件配置账户信息
5、IDEA创建SpringBoot项目
6、SpringBoot项目编写Dockerfile文件
7、get push项目到Gitee
注册Gitee账号以及创建仓库这里我们就忽略了
博主以Mac为例,找到 IntelliJ IDEA
- Preferences
- Plugins
搜索gitee安装插件
Gitee插件配置账户信息,可以选择授权登陆以及账号密码登陆等,大家根据情况自行选择
创建一个简单的SpringBoot项目
项目根目录创建Dockerfile文件
FROM openjdk:11
# 设置工作目录
WORKDIR /app
# 将宿主机的目录挂载到容器的/app目录
VOLUME /app
# 复制.jar文件到工作目录
COPY jenkins-demo-project-0.0.1-SNAPSHOT.jar /app/jenkins-demo.jar
# 设置容器启动时执行的命令
CMD ["java", "-jar", "jenkins-demo.jar" ,"--server.port=9090"]
调整pom.xml设置maven将Dockerfile一并打包到target目录下
最后通过IDEA提交代码到Gitee仓库
由于博主的仓库是公开的,小伙伴们也可以直接使用博主的demo 【仓库地址】
开始配置Jenkins
找到左侧菜单 - 新建任务 - jenkins-demo
创建完成后,点击对应任务进入
在左侧找到配置
配置Git Repository URL
找到 Post Steps
选项,,选择仅构建成功执行
设置我们的sell
命令,需要判断对应容器是否存在,存在则需要停止并删除
# 默认操作在Jenkins工作目录下的项目名目录 即 workspace/jenkins-demo/target
cd target
#构建镜像
docker build -t jenkins-demo .
# 使用docker ps和grep来检查容器是否存在
if docker ps -a | grep "my-jenkins-demo" > /dev/null; then
echo "容器存在"
#容器存在则停止并删除容器
docker stop my-jenkins-demo
docker rm my-jenkins-demo
else
echo "容器不存在"
fi
#运行容器
docker run -d -p 9090:9090 --name my-jenkins-demo jenkins-demo
注意
上一章节我们已经处理了将宿主机的Docker引擎挂载到Jenkins容器上,即Jenkins容器调用宿主机的Docker
如果你没有看过上一章教程 可以点击 查看上一章内容
构建测试
配置完成,点击左侧立即构建,在下方的构建历史点击对应构建编号进入查看控制台输出
输出如下
测试访问
结语
本章节从创建SprongBoot项目 -> 上传gitee -> Jenkins自动化部署进行演示,小伙伴们可以跟着博主的教程操作自己走一遍,过程中如果出现其它问题,欢迎留言大家一起交流!
下一章节:2024最新 Jenkins + Docker 实战教程(五) - 配置Webhooks实现自动构建及运行项目