上篇文章 > https://blog.csdn.net/qq_35406115/article/details/117432092
完成了doccker-compose的服务编排,这篇博客将记录使用docker-compose集成jenkins编排服务,并持续集成,自动构建、部署。
在这篇jenkins集成docker > https://blog.csdn.net/qq_35406115/article/details/116724239
的基础上进行构建任务的编辑。
构建
# 复制jar包和Dockerfile到构建目录
cp ./target/ci-demo-1.0.1-release.jar ./Dockerfile /usr/local/app/ci-demo
## 调整部分均写了备注
docker tag ci-demo 192.168.1.100:5000/ci-demo
docker push 192.168.1.100:5000/ci-demo
docker image rm 192.168.1.100:5000/ci-demo
cd /usr/local/docker-compose # 切换到docker-compose配置文件目录
/usr/local/bin/docker-compose down # 停止服务 此处有坑,原来写 docker-compose down
docker images|grep none|awk '{print $3}'|xargs docker rmi
/usr/local/bin/docker-compose up -d # 启动服务
构建触发器
选择周期性构建
H/15 * * * * # 每十五分钟执行一次
验证
代码修改
自动构建期间修改代码提交至代码管理平台Gitlab,上次构建是11:00,下次构建是11:15,在这期间我修改了代码,并推送到远端仓库
自动构建
11:15发现Jenkins页面自动构建,页面如下
页面
构建前页面如下
构建后页面如下
至此可见,docker-compose集成Jenkins自动构建、部署的目标已经完成。
问题:Jenkins在执行到 docker-compose down报错如下:
/tmp/jenkins4141857310688876246.sh:行5: docker-compose: 未找到命令
问题原因:无法执行docker-compose命令,所以需要指定命令绝对路径,调整如下
/usr/local/bin/docker-compose down
因为我给jenkins用户是root权限,所以不需要sudo
参考博客:https://blog.csdn.net/nankec/article/details/107832097
总结
虽然博主只是集成了sonatype/nexus3,gitlab/gitlab-ce,registry及测试服务ci-demo,但已经实现了:
1 maven管理项目,并推送jar包到远端nexus3私有仓库
2 Gitlab管理源码
3 registry管理镜像
4 jenkins定时拉取远端源码,依赖远端nexus3的jar包,编译成spring-boot的jar包,利用dockers构建镜像并推送到远端registry,docker-compose编排更新服务!
整个流程已经满足中小型公司开发迭代,持续集成的要求。开发只需要安心业务编码,推送公用包到nexue3私有仓库,推送源码到Gitlab源码库,经过代码review合入主干即可! 当然,实际开发,基础服务以及业务服务非常多,而且服务之前还存在依赖关系,这算是最基本的雏形!算是docker微服务送死之路2.0终止,也算是微服务送死之路的起点!路漫漫其修远兮,吾将上下而求索!