您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

01 Jenkins pipeline parallel(在容器中運行 Jenkins pipeline 任務)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-21 00:12:08【】9人已围观

简介在容器中運行Jenkinspipeline任務持續集成中的pipeline技術和docker都是當前正在發展的主流方向,當然把它們結合起來在CI/CD過程中發揮出更強大的威力也是大家共同的目標。本文將

在容器中運行 Jenkins pipeline 任務

持續集成中的 pipeline 技術和 docker 都是當前正在發展的主流方向,當然把它們結合起來在 CI/CD 過程中發揮出更強大的威力也是大家共同的目標。本文將介紹如何在 Jenkins pipeline 中集成使用 docker,好在當前的 Jenkins 已經默認通過插件實現了與 docker 的集成,所以這將是一段輕松愉快的旅程。

簡單起見,我們使用一臺安裝了 docker 的 linux 虛機,并通過 ssh 將其啟動為 Jenkins server 的 build agent。主要操作步驟如下:

我們通過下面的腳本一次搞定這些操作(docker 的安裝請參考官方文檔):

在 linux 虛機上執行上面的腳本,然后在 Jenkins 中添加 node(build agent):

其中的 "Remote root directory" 就是剛才創建的 /var/jenkins 目錄。"Launch method" 選擇 "Launch slave agents via SSH"。Host 為 linux 虛機的 IP,Credentials 則為剛才創建的 jenkins 用戶。

先來運行一個簡單的 demo。創建一個 pipeline 類型的 job,并輸入下面的 pipeline script:

運行該任務,執行結果如下:

其中的命令 node --version 就是在容器中執行的。

Jenkins 默認會把任務分配給任何可用的 agent,如果我們要指定任務執行的 agent,可以在 docker 的配置中指定 label,這樣該任務只會被分配到具有某個 label 的 agent 上運行:

我們還可以在 folder 級別指定 label,這樣的設置會應用在 folder 內所有沒有設置 label 的任務上:

除了 label,還可以設置 docker registry URL 及其身份認證的憑據。

我們還可以在不同的 stage 中運行不同的容器,其實就是每個 stage 用自己的容器鏡像創建容器并執行任務,stage 之間沒啥關系:

通過指定 Dockerfile 文件,在 build agent 上直接構建容器鏡像,然后生成容器并執行命令。下面的 demo 中我們通過 Dockerfile 創建一個包含 curl 工具的容器鏡像,然后通過該鏡像啟動容器并執行 HTTP 請求。該 demo 一共包含三個文件:Dockerfile 、entrypoint.sh 和 Jenkinsfile,大家可以直接從這里下載它們。先看一下 Dockerfile 文件的內容:

其中的 entrypoint.sh 內容如下:

Jenkinsfile 的內容如下:

注意,該文件中我們設置了 dir 為 curl 目錄,這是因為此項目的 Dockerfile 文件不是在代碼庫的根目錄下,所以需要指定其相對目錄的路徑。

然后在 Jenkins 中創建 pipeline 類型的 job,并把 pipeline 的 Definition 設置為 "Pipeline script from SCM" 。接下來設置好代碼倉庫的路徑就可以了。運行該任務,從日志上可以看到取完代碼后先通過 Dockerifle 文件構建了容器鏡像:

并在容器中運行了 curl 買粉絲://買粉絲.買粉絲blogs.買粉絲/sparkdev/p/8795141.買粉絲 命令。

上面的例子中我們通過 Dockerfile 生成了容器鏡像,并且完成了相關的測試(通過 curl 請求了測試網頁)。接下來就是把生成的容器鏡像推送到鏡像倉庫中。下面將演示如何在 pipeline 中把構建的鏡像推送的鏡像倉庫。首先在 Folder 的配置界面中添加訪問 dockerhub.買粉絲 憑據如下:

如果是訪問 dockerhub 就不需要填寫 "Docker registry URL"。然后添加下面的 Pipeline script:

注意, 9e70c1eb-814c-4cf2-97e9-5bfc20461231 剛才創建的憑據的 ID,可以從 folder 的 Credentials 界面中獲得。運行這個任務,執行成功后去 dockerhub.買粉絲 上看一下,是不是已經把新構建的鏡像推送上去了:

從本文的幾個簡單 demo 可以看出,jenkins pipeline 和 docker 集成的已經很好了。當然你還可以實現更多更復雜的用例,趕緊動手吧!

參考:

Using Docker with Pipeline

Pipeline Syntax

作者:sparkdev

出處:買粉絲://1t.click/aerf

jenkins之pipeline相關概念

pipeline是什么,有什么作用,用groovy語言編寫

創建pipeline操作步驟:

1、安裝jenkins 和安裝插件 pipeline。

2、新建一個pipeline項目,在pipeline中加入腳本,構建執行。

部署流水線:Deployment pipeline,從軟件版本控制庫到用戶手中這一過程的自動化表現形式。

所有的部署流水線都寫在jenkins-file文件中,需要安裝插件pipeline插件后才能使用jenkins-file。

1.pipeline最簡單的結構

pipeline是什么,用于描述整條流水線是如何進行的。流水線的內容包括執行編譯、打包、測試、輸出測試報告等步驟。以下5個部分是pipeline的必需存在的,少一個,jenkins都會報錯。

2.pipeline的步驟

pipeline基本結構決定的是pipeline整體流程。

pipeline plugin的github倉庫: 買粉絲s://github.買粉絲/jenkinsci/pipeline-plugin/blob/master/README.md

jenkins pipeline支持的指令有:

聲明式(Delar-ative)語法&腳本式(Scripted)語法如圖:

Jenkins-pipeline中SSH方式登錄遠程機器

     pipeline{

   agent any

   stages {

       stage ('Pipeline 買粉絲nfiguration') {

                agent none

                steps {

                      script {

                        stage ('Pull & PushImage') {

                          def remote = [:]

                          remote.name = 'test'

                          remote.host ='192.168.248.190'

                          remote.user = 'root'

                          remote.password ='password'



很赞哦!(58215)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:广东清远清城区

工作室:小组

Email:[email protected]