Jenkins2 學(xué)習(xí)系列25 -- 添加 Docker Cloud 并構(gòu)建鏡像

本篇告訴你:

  1. 如何在 Jenkins 中添加一個(gè)遠(yuǎn)程 Docker 作為構(gòu)建項(xiàng)目的 Cloud
  2. 如何在這個(gè) Cloud 中指定代碼倉庫并打包 Docker 鏡像
  3. 將鏡像 push 到官方的 Docker Hub 倉庫

目前Docker已經(jīng)成為眾多流水線中關(guān)鍵的組成部分之一。容器化具有的簡單性,靈活性以及隔離性可以讓我們定制特定的而且能夠精確重復(fù)的環(huán)境。容器化部署也越來越流行。

關(guān)于Docker的基本概念和使用方法,可以參見我寫的系列。

這里我需要兩臺(tái)主機(jī)(測(cè)試時(shí)可以是同一個(gè)機(jī)器),一臺(tái)運(yùn)行Jenkins,另一臺(tái)運(yùn)行Docker,作為Jenkins的代理節(jié)點(diǎn)。

當(dāng)Jenkins啟動(dòng)pipeline工作時(shí),同時(shí)連接并啟動(dòng)這個(gè)代理節(jié)點(diǎn),由他完成構(gòu)建鏡像的工作,當(dāng)流水線完成之后,Jenkins會(huì)停止并刪除運(yùn)行這些鏡像的容器,使用這種方法需要配置Docker插件

好處:Jenkins master 節(jié)點(diǎn)只負(fù)責(zé)調(diào)控,具體的構(gòu)建任務(wù)下放到Docker代理節(jié)點(diǎn)中去,解決master空間不夠等問題

安裝插件之后Jenkins的系統(tǒng)配置頁面會(huì)多出一個(gè)Cloud部分。
需要填寫連接Docker的配置信息
Name: 給Docker主機(jī)起個(gè)別名
Docker Host URI: 如 tcp://192.168.10.10:2375 ,連接本機(jī)Docker,如果連其他主機(jī)上的Docker服務(wù)端,需要Docker宿主機(jī)開放遠(yuǎn)程訪問,具體見Docker 學(xué)習(xí)系列21 遠(yuǎn)程連接Docker

image.png

集成Docker插件后,在管理Jenkins頁面中會(huì)多出一個(gè)Docker入口

image.png

點(diǎn)擊后能看到配置過的分配給Jenkins實(shí)例的Docker服務(wù)器列表

image.png

再點(diǎn)進(jìn)去能看到正在運(yùn)行的容器和擁有的鏡像

image.png

Cloud 構(gòu)建Docker鏡像并上傳到指定倉庫

接下來我們新建一個(gè) freestyle 項(xiàng)目

  1. 配置代碼倉庫,注意倉庫中要有Dockerfile,以我的這個(gè)公開倉庫為例

  2. Build - Add build step 添加新的構(gòu)建步驟 - Build / Publish Docker Image

  • Directory for Dockerfile: 因?yàn)镈ockerfile就在代碼中的根目錄,這里不填
  • Cloud:選擇剛剛配置的 Docker Cloud 名字
  • Image: 要打包上傳的鏡像名
  • Registry Credentials: 注意這里,要添加一個(gè)類型是username/password的可以登錄docker倉庫的credentials
image.png
  1. 構(gòu)建,查看輸出信息
image.png
  1. 檢查
    Docker Hub 可以看到剛剛上傳的鏡像
image.png

同時(shí)Docker Cloud中也多出了一個(gè)剛剛打包的鏡像

image.png

參考

https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file
http://www.itdecent.cn/p/2ad009ae95ad
jenkins slave docker容器化

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容