使用Jenkins Pipeline插件和Docker打造容器化構建環境_第1頁
使用Jenkins Pipeline插件和Docker打造容器化構建環境_第2頁
使用Jenkins Pipeline插件和Docker打造容器化構建環境_第3頁
使用Jenkins Pipeline插件和Docker打造容器化構建環境_第4頁
使用Jenkins Pipeline插件和Docker打造容器化構建環境_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

使用JenkinsPipeline插件和Docker打造容器化構建環境Docker和Jenkins像DevOps界的巧克力和花生醬那樣,它們的組合產生了無數的機會,當然也產生了很多難題,筆者將提及這兩個方面。本文中,我假定讀者已經熟悉Jenkins和Docker,我將把焦點放在特定的配置上而不是把筆墨花費在許多博文已經介紹過的入門概念上。設定目標我所要達成的目標其實非常簡單:在一個容器中搭建Jenkins主節點,并且在多個主機上搭建多個JNLP代理容器。這些代理節點可以運行在不同的AWSVPC或者ECS上。我的目標是得到一個能在任何主機上部署的通用配置,而每個項目分別定義各自的構建環境。這樣各個開發團隊就可以掌控這份配置,而不用經由Jenkins的構建團隊。我會盡量避免構建一個特定工具集的代理節點。容器技術能實現這樣的構建環境,但是要真正把每個細節都做好絕對是一個挑戰。為了實現這個目標,我還使用了JenkinsPipeline/Workflow插件。這個插件讓你能非常優雅地使用DSL語言描述構建過程,例如這樣簡單地定義:node('test-agent'){stage"ContainerPrep

這個pipeline會在一個名為”test-agent”的Jenkins代理上執行,它會基于“maven”3.3.3-jdk-8”鏡像構建一個容器。這個pipeline在物理節點上能正常運行,但是在容器中運行則會報錯。運行在Docker中的Docker在容器中運行Jenkins的主或從節點,可能有人會以為我需要特權模式來使用"DockerinDocker”,但是我并沒有,JQr6mePetazzoni發表了一篇文章《使用Docker-in-Docker來運行Cl或集成測試環境?三思》,你應該參考一下這篇文章。如果你還在使用wrapdocker的腳本,你應該問問自己為什么,因為這樣用起來更簡單:這個命令會啟動Jenkins并且可以擁有所有的容器操作功能,所以并不需要特權模式來啟動容器,也不需要”Docker-in-Docker”模式。有個地方需要注意:在這里你不能用官方的Jenkins鏡像,因為jenkins用戶需要屬于docker用戶組,這樣才能使用socket,從而能在容器中的Jenkins調用docker,最終實現通過Jenkins構建和運行其他容器。

JenkinsJNLP代理容器在“系統管理”=>“管理節點”頁面,點擊“新建節點”,可以添加slave:an?S只 an?S只 4機卑的JobH融W逵 LiiinehtUh*半腫心啊J?^Wt<5笑?Avari!biSrT 而q 負酣*Ofl-iirflumuch^po^^W'ltMDdcPTopormEjivrw-nipn陽陽les"fe&Jl<xr#lcngJenkins從節點的啟動方式與主節點類似,它也需要連接docker的socket接口你可以這樣啟動:test-agent與Jenkins主節點一樣,你需要確保jenkins用戶有權限訪問dockersocket接口,我使用的是Jenkinsjnlp從節點容器,這樣,這個slave容器就可以執行構建操作了,注意secret參數需要從master上的某個slave里查看。準備就緒,開始構建在容器中開始一個構建過程不難,問題是你必需讓這個代理容器綁定一個宿主機上的路徑${JENKINS_HOME}:/var/jenkins_home,而且被構建的容器也需要這個目錄的訪問權限。這個容器會把宿主機上的/var/jenkins_home/workspace/uri-templates-in-docker目錄掛載到容器化環境以供Maven使用,并且會把這個路徑設置成當前工作路徑,這些在物理機上都能正常運行,但是要在容器中執行,我需要嘗試這樣做:這樣明顯不行,因為我把dockersocket端口映射到了Jenkins代理容器上,掛載到Jenkinsagent容器的所有卷實際上都是引用宿主上的路徑,假定宿主上的${JENKINS_HOME}是/opt/jenkins_home,以下的命

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論