繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後
CICD整個流程:
- idea修改工程後push到gitlab >> gitlab通過webhook通知jenkins工程有改變 >>jenkins到gitlab取最新工程 。
- jenkins 自動 maven (建構、單元測試)工程。
- jenkins完成容器建構 docker images >> push到docker hub私有鏡像倉庫并自動化運作容器應用。
- 通過Kubernetes到Harbor私有鏡像倉庫拉取鏡像,自動化編排服務,運作微服務容器應用。(下一章節)。
一、通過GitLab的webhook與Jenkins 連通。
一個比較典型的微服務應用 這裡隻強調應用中的兩個比較重要的檔案 一個是Dockerfile 另外一個是build.sh。
接下來是idea 修改工程 功能後push到gitlab之後。
1、jenkins 建立一個新任務
任務名稱跟Gitlab 工程目錄下的其中一個微服務子產品名稱對應,選擇流水線 ,點确定。
2、在任務詳情的 “建構觸發器” ,勾選 “觸發遠端建構” ,輸入身份驗證令牌(自定義)
複制/job/register-center/build?token=123456 到Gitlab 工程下的Integrations 右邊 URL中,
點選 Add webhook 生成一條 webhook 記錄 。
3、jenkins進入系統設定>全局安全配置 不選擇 跨站請求僞造保護下的“防止跨站點請求僞造”,勾選 授權政策下的 “匿名使用者具有可讀權限” 點儲存。
4、在Gitlab的webhook 點選 test >push events 測試是否與jenkins連通。
如果頁面上方出現 Hook executed successfully: HTTP 201 提示,表示已連通。
在jenkins 檢視對應的 控制台輸出 Finished: SUCCESS 。
二、jenkins maven 自動(建構、單元測試)
1、jenkins進入任務詳情的 “流水線”Pipeline 腳本編寫,點選 “流水線文法”進入,檢視文法。
步驟>示例步驟 選擇 Git
從GitLab 擷取工程的git 位址到 複制到 Repository URL 然後點選 “生成流水線腳本”,複制到流水線的腳本中
編寫自動擷取代碼、自動編譯、單元測試 腳本 ,儲存傳回,點立即建構 ,進入自動建構。
檢視jenkins首頁 可以看到工程狀态資訊,進入控制台檢視日志,如出現 BUILD SUCCESS 表示 自動擷取代碼、自動編譯成功。
三、jenkins建構鏡像 (docker images)push到docker 私有鏡像倉庫并自動化運作容器應用。
1、建立腳本路徑與建構鏡像腳本檔案,編寫腳本
cd /usr/local
mkdir build_script
cd build_script
vi build-images.sh
chmod 775 build-images.sh
編寫腳本
應用docker鏡像建構、推送私有鏡像倉庫、運作鏡像生成容器
2、在jenkins流水線的腳本中添加build-images.sh執行步驟
3、在idea修改微服務工程代碼後push到gitlab,檢視jenkins控制台輸出及傳回項目首頁,如出現下圖表示整理流程沒問題了。
4、在伺服器上通過docker指令檢視鏡像 可以發現已經建構成鏡像了
docker images
檢視是否在運作:
docker ps -a
已實作自動化建構容器應用,通過Kubernetes到Harbor私有鏡像倉庫拉取鏡像,自動化編排服務,運作微服務容器應用。(下一計劃)