docker-compose持续集成(完结篇)

上篇文章 > 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终止,也算是微服务送死之路的起点!路漫漫其修远兮,吾将上下而求索!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Docker是一种容器化技术,可在其中运行现代应用程序。Docker容器本身是一种虚拟化技术,它允许用户将应用程序与依赖项捆绑在一起,并以一种轻量级的方式运行在不同的环境中。Docker容器的关键优势在于能够轻松地在不同的环境中部署应用程序,达到开发人员和运维人员的持续整合、持续部署和持续交付。 Docker Compose是一种工具,它允许用户定义和运行多个Docker容器。使用Docker Compose可以轻松地配置容器之间的网络连接和依赖关系,使得多个Docker容器能够协同工作,从而形成一个完整应用程序。 连接本地数据库时,可以使用Docker Compose配置文件定义数据库容器和应用程序容器之间的连接。在Docker Compose配置文件中,可以指定数据库容器要映射到的本地端口,以及应用程序容器如何连接到本地数据库。例如,下面是一个简单的Docker Compose配置文件,用于连接一个MySQL数据库和一个PHP应用程序: version: '3.1' services: db: image: mysql:latest ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: example_password php: build: . ports: - "80:80" depends_on: - db environment: DB_HOST: db DB_USER: root DB_PASSWORD: example_password 在上面的Docker Compose配置文件中,我们定义了两个服务:一个MySQL数据库服务和一个PHP应用程序服务。数据库服务的镜像是MySQL的最新版。我们将其映射到本地端口3306,并设置了MySQL的root密码。PHP应用程序服务使用Dockerfile进行构建。我们将其映射到本地端口80,并指定它依赖于数据库服务。然后我们通过环境变量将应用程序容器连接到本地数据库。 总之,Docker容器和Docker Compose的使用使得我们能够轻松地集成和部署多个容器,包括本地数据库,使得整个应用程序具有高效性、可靠性和扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值