同福

Jenkins动态重新部署docker-compose服务的方法

介绍

介绍

好久没有更新了,先给大家说一声抱歉!这段时间福哥把同福网的搜索功能整体重构了一遍,增加了很多的功能,目的是让大家在搜索技术文章的时候体验更好~

今天我们来学习使用Jenkins调用docker-compose部署服务的方法!结合前面学习的使用Jenkins构建Docker镜像的技术,就可以使用Jenkins实现从更新代码到重新构建Docker镜像再到重新部署服务一整套操作了~

其实Jenkins本身有个插件docker-compose-build-step,可以用来实现调用docker-compose的目的。但是这个插件就是简单的执行docker-compose命令,而且还不支持对远程主机进行操作。所以福哥就放弃它了!

环境

镜像版本
jenkins/jenkins:2.401.1
操作系统CentOS 7 x86_64 2009
服务器TFCentOS7x64
IP192.168.168.68
端口1180、5618

使用

启动相关服务

首先把tfgitlab和tfjenkins启动起来!

docker start tfgitlab tfjenkins

bab25448b2f55b27984c07e147f690f8.png

Docker开启TCP模式

这个福哥在前面使用Jenkins构建Docker镜像的教程里面已经教给大家了,这里就不再赘述了~

复制docker-compose到Jenkins目录

我们把宿主机上的docker-compose脚本复制到tfjenkins的映射目录里。

cd /tongfu.net/data/docker/data/tfjenkins/
mkdir sbin
cp /usr/sbin/docker-compose sbin/

a79a17132d9fe0ae3d17228e6a510a2b.png

配置任务tftest

现在我们来修改tftest任务,在用它来实现重新构建Docker镜像的之后,再去重新部署docker-compose服务。

点击任务tftest的“Configure”进入配置界面,点击“Build steps”进入构建步骤环节,添加一个“Execute shell”操作。

export JENKINS_SBIN_ROOT=/var/jenkins_home/sbin
export DOCKERCOMPOSE_ROOT=/var/jenkins_home/dockerfile
$JENKINS_SBIN_ROOT/docker-compose \
-H "tcp://192.168.168.68:5168" \
-f $DOCKERCOMPOSE_ROOT/docker-compose.yml \
up -d tfphp

d4482c9d0630f8f6f28f96baecaae327.png

记得推送更新到Git服务器。

git add config/config.php
git commit -m "更新主机名适配docker-compose环境"
git push

470897b206047532407d19013028cd86.png

  tfphp:
    image: registry.tongfu.net:5000/tftest:1.0.0
    container_name: tfphp

dd68f1d333d0aeccf2e83645a2b2b687.png

总结

今天我们学习了使用Jenkins调用docker-compose脚本完成重新部署服务的方法,今后大家就可以使用Jenkins进行docker-compose环境里的服务的重新部署了。

说实在的,docker-compose解决方案一般应用于单服务器情况,单服务器还是直接敲命令更加简单~

后面福哥会教给大家如何使用Jenkins工具实现重新部署在Rancher服务器集群里的服务,敬请期待~