1. 程式人生 > >Jenkins集成Docker實現鏡像構建和線上發布

Jenkins集成Docker實現鏡像構建和線上發布

gis and ash macro tom 說明 align docker add

原文地址: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實現鏡像構建和線上發布