Jenkins集成Docker實現鏡像構建和線上發布
原文地址:http://www.cnblogs.com/keithtt/p/6410229.html
大概過程如下圖:
由於需要用到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插件。
2、新建一個項目。
3、配置項目。
4、填寫項目名稱。jenkins的工作空間與這裏的項目名稱對應,默認在/var/lib/jenkins/workspace下。
5、拉取代碼。填寫項目地址和需要拉取的分支,這裏用了一個Additional Behabiours,拉取代碼會自動創建一個目錄並將代碼放在該目錄下。
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 |
7、通過腳本發布到k8s。這裏需要設置SSH互信(具體過程略..)。
8、在k8s master上編寫發布腳本。
#vim stg-che001-56-waybill.sh #!/bin/bash #update the version number sed -ri "[email protected](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、配置完成後,點擊立即構建。
10、點擊Console Output可以查看構建日誌。如果最後提示SUCCESS,則表示構建成功。(這裏日誌太長,只截取了一半)
Jenkins集成Docker實現鏡像構建和線上發布