基于jenkins和docker的持续化集成实践

基于jenkins和docker的持续化集成实践

本文尝试从零开始为大家演示如何用docker和jenkins做持续化集成。在github上随便找了个仓库来作为我们今天的演示对象,一个空nginx,地址是https://github.com/nginxinc/docker-nginx。 所以我们要实现的就是,用jenkins+docker的方式,自动将构建好这个demo,并部署到服务器。

 

安装jenkins

jenkins安装方法很多,可以参考文档https://jenkins.io/doc/,个人比较喜欢用docker方式安装,命令如下:

命令执行成功的话,jenkins就装好了。可以使用http://localhost:8080/访问jenkins,然后就是做一些初始化工作,这里不再赘述,大家根据页面提示操作就行了。

 

配置jenkins

安装ssh插件

image-20190109044113429

添加你的服务器凭据

image-20190109044600623

 

进入系统设置页,添加服务器

image-20190109045024184

在系统设置页,配置如下一下环境变量

image-20190109045239607

 

创建一个jenkins项目

新建一个自由风格的软件项目,名字随意。

image-20190109042944809

 

设置git仓库

image-20190109171339691

 

添加本地shell执行构建步骤

主要是完成build镜像、推送镜像到私服等操作。这一系列操作,也可以通过一些jenkins插件完成,比如CloudBees Docker Build and Publish。这里我用的是使用shell命令的方式。

image-20190109045613139

 

远程远程脚本执行步骤

通过ssh登录到远程机器,执行docker镜像拉取和重启容器操作。

image-20190109171823861

 

结束

至此配置就完成了,点立即构建就能将demo发布到远程服务器了。正常的话,访问http://远程机器ip:9000,可以看到nginx的默认主页。