利用jenkins自动构建基于docker的tomcat容器

来源:互联网 发布:软件工程硕士学位证 编辑:程序博客网 时间:2024/06/13 23:25

软件准备

jenkins-2.7.4
maven-3.0.5
git-2.8.0
gitlab-8.7.5
docker-17.05.0-ce
具体的安装本处不予缀述,该yum的yum,make install或者rpm都可以,自由选择。git最好不要用yum install git,自动安装的版本太老,会导致后续jenkins执行git命令失败。

环境搭建

这次的构建jenkins和docker并不在同一台机器上,其中jenkins机器需要有maven和git,此外jenkins还需要安装一些辅助插件。

除了默认推荐安装的插件,还包括:
Publish Over SSH (用于连接到远程服务器执行命令)
Environment Injector Plugin(用于声明变量,当然也可以直接写死在shell中,这样就不需要这个插件了)
Hudson SCP publisher plugin(SCP拷贝war包到远程主机)

配置jenkins

准备好插件后我们就可以着手配置jenkins了,首先配置全局的scp以及SSH,进入jenkins->系统管理->系统设置,找到SCP repository hosts栏目,新增目标服务器配置(用户名我改了一个假的,所以连接不上,正常情况不应该出现红字报错)
这里写图片描述
然后再配置SSH,(为了方便使用账号密码方式,多动动手配置.ssh更安全)。找到Publish over SSH栏目进行配置
这里写图片描述

全局配置好后,就可以新建一个jenkins任务,构建自由风格的软件项目,整体配置如下——
git配置
变量配置
执行maven命令打包
执行maven命令打包
构建后操作
scp
最后配置ssh登录到服务器执行shell
ssh
完整shell如下

# 容器在运行if [[ `docker ps | grep ${SERVICE_NAME}` ]]; then     # 停止运行中的容器    docker stop ${SERVICE_NAME}fi;# 启动if [[ `docker ps -a | grep ${SERVICE_NAME}` ]]; then    # 容器已创建,只重启    docker restart ${SERVICE_NAME}else    # 如果容器未创建,创建容器    docker run -d -i -t --privileged=true --name=${SERVICE_NAME} -v ${WORK_DIR}:${CONTAINER_DIR} -p 12000:8080 tomcat:7fi;

tomcat镜像创建

其实直接执行脚本即可,本地不存在镜像docker会自动下载,但这里还是啰嗦一下。
docker搜索tomcat

docker search tomcat

选择评星最高的官方镜像下载
这里写图片描述

可以登录https://hub.docker.com/ 去查看tag。
这里我们使用tomcat:7

docker pull tomcat:7

安装成功后:
这里写图片描述

准备就绪回到我们的jenkins,执行一次立即构建(尝试失败了好多次,耐心看日志错误提示),成功。
这里写图片描述
这里写图片描述

接下来就可以配置自动构建
勾选Build periodically(节省资源可以用Poll SCM)
这里写图片描述

保存,搞定。

原创粉丝点击