lihanchuan125 发表于 2018-1-6 12:01:47

Jenkins集成Docker实现镜像构建和线上发布

  原文地址:http://www.cnblogs.com/keithtt/p/6410229.html

大概过程如下图:
https://images2015.cnblogs.com/blog/1005945/201703/1005945-20170305132921251-832677540.png
  由于需要用到docker打包镜像,jenkins宿主机上需要安装docker,原先的jenkins server安装在centos6上无法运行docker,所以这里单独用一台centos7安装一个jenkins server。
  jenkins的安装方法有多种:
  1、下载jar包,直接通过java运行。
  2、用tomcat作为容器运行。
  3、通过yum安装。
  4、通过docker运行。
  安装过程都很简单,这里就不详细说明了。
  1、安装插件。打开jenkins页面,安装CloudBees Docker Build and Publish plugin和Publish Over SSH Plugin插件。
https://images2015.cnblogs.com/blog/1005945/201703/1005945-20170305132935157-1634916487.png
  2、新建一个项目。
https://images2015.cnblogs.com/blog/1005945/201703/1005945-20170305132947126-704594956.png
  3、配置项目。
https://images2015.cnblogs.com/blog/1005945/201703/1005945-20170305132958766-947669078.png
  4、填写项目名称。jenkins的工作空间与这里的项目名称对应,默认在/var/lib/jenkins/workspace下。
https://images2015.cnblogs.com/blog/1005945/201703/1005945-20170305133012845-1059596163.png
  5、拉取代码。填写项目地址和需要拉取的分支,这里用了一个Additional Behabiours,拉取代码会自动创建一个目录并将代码放在该目录下。
https://images2015.cnblogs.com/blog/1005945/201703/1005945-20170305133023407-151920934.png
  6、build镜像,并将镜像push到harbor镜像库。填写相应的docker、dockerfile以及镜像库地址信息。
  这里需要设置docker启动参数。
  

#vim /etc/sysconfig/docker  
OPTIONS='--insecure-registry 172.60.0.107 -H 0.0.0.0:2375 -H unix:///var/run/docker.sock'
  
#systemctl restart docker
  

https://images2015.cnblogs.com/blog/1005945/201703/1005945-20170305133034954-1807053727.png
  7、通过脚本发布到k8s。这里需要设置SSH互信(具体过程略..)。
https://images2015.cnblogs.com/blog/1005945/201703/1005945-20170305133047470-1194624219.png
  8、在k8s master上编写发布脚本。
  

#vim stg-che001-56-waybill.sh  

  
#!/bin/bash
  

  
#update the version number
  
sed -ri "s@(image.*v).*@\1${BUILD_NUMBER}@" /root/che001-56-stg/che001-56-waybill.yaml
  

  
#Apply the configuration change
  
kubectl delete -f /root/che001-56-stg/che001-56-waybill.yaml && kubectl create -f /root/che001-56-stg/che001-56-waybill.yaml
  

  9、配置完成后,点击立即构建。
https://images2015.cnblogs.com/blog/1005945/201703/1005945-20170305133059891-1965641131.png
  10、点击Console Output可以查看构建日志。如果最后提示SUCCESS,则表示构建成功。(这里日志太长,只截取了一半)
https://images2015.cnblogs.com/blog/1005945/201703/1005945-20170305133112516-1166580616.png
https://images2015.cnblogs.com/blog/1005945/201703/1005945-20170305133125610-425006675.png
页: [1]
查看完整版本: Jenkins集成Docker实现镜像构建和线上发布