天天看點

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

CICD整個流程:

  1. idea修改工程後push到gitlab >> gitlab通過webhook通知jenkins工程有改變 >>jenkins到gitlab取最新工程 。
  2. jenkins 自動 maven (建構、單元測試)工程。
  3. jenkins完成容器建構 docker images >> push到docker hub私有鏡像倉庫并自動化運作容器應用。
  4. 通過Kubernetes到Harbor私有鏡像倉庫拉取鏡像,自動化編排服務,運作微服務容器應用。(下一章節)。

一、通過GitLab的webhook與Jenkins 連通。

一個比較典型的微服務應用 這裡隻強調應用中的兩個比較重要的檔案 一個是Dockerfile 另外一個是build.sh。

接下來是idea 修改工程 功能後push到gitlab之後。

1、jenkins 建立一個新任務

任務名稱跟Gitlab 工程目錄下的其中一個微服務子產品名稱對應,選擇流水線 ,點确定。

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

2、在任務詳情的 “建構觸發器” ,勾選 “觸發遠端建構” ,輸入身份驗證令牌(自定義)

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

複制/job/register-center/build?token=123456 到Gitlab 工程下的Integrations 右邊 URL中,

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

點選 Add webhook 生成一條 webhook 記錄 。

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

3、jenkins進入系統設定>全局安全配置 不選擇 跨站請求僞造保護下的“防止跨站點請求僞造”,勾選 授權政策下的 “匿名使用者具有可讀權限” 點儲存。

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

4、在Gitlab的webhook 點選 test >push events 測試是否與jenkins連通。

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

如果頁面上方出現 Hook executed successfully: HTTP 201 提示,表示已連通。

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

在jenkins 檢視對應的 控制台輸出 Finished: SUCCESS 。

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

二、jenkins maven 自動(建構、單元測試)

1、jenkins進入任務詳情的 “流水線”Pipeline 腳本編寫,點選 “流水線文法”進入,檢視文法。

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

步驟>示例步驟 選擇 Git

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

從GitLab 擷取工程的git 位址到 複制到 Repository URL 然後點選 “生成流水線腳本”,複制到流水線的腳本中

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後
idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

編寫自動擷取代碼、自動編譯、單元測試 腳本 ,儲存傳回,點立即建構 ,進入自動建構。

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

檢視jenkins首頁 可以看到工程狀态資訊,進入控制台檢視日志,如出現 BUILD SUCCESS 表示 自動擷取代碼、自動編譯成功。

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

三、jenkins建構鏡像 (docker images)push到docker 私有鏡像倉庫并自動化運作容器應用。

1、建立腳本路徑與建構鏡像腳本檔案,編寫腳本

cd /usr/local

mkdir build_script

cd build_script

vi build-images.sh

chmod 775 build-images.sh

編寫腳本

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

應用docker鏡像建構、推送私有鏡像倉庫、運作鏡像生成容器

2、在jenkins流水線的腳本中添加build-images.sh執行步驟

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

3、在idea修改微服務工程代碼後push到gitlab,檢視jenkins控制台輸出及傳回項目首頁,如出現下圖表示整理流程沒問題了。

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後
idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

4、在伺服器上通過docker指令檢視鏡像 可以發現已經建構成鏡像了

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

docker images

檢視是否在運作:

idea docker push 很慢_Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服務自動化部署繼使用Docker搭建Gitlab、使用Jenkins+Docker+Gitlab+Maven搭建持續內建環境後

docker ps -a

已實作自動化建構容器應用,通過Kubernetes到Harbor私有鏡像倉庫拉取鏡像,自動化編排服務,運作微服務容器應用。(下一計劃)

繼續閱讀