Jenkins 定義執(zhí)行環(huán)境

2018-08-22 10:40 更新

上一節(jié)中, 您可能已經(jīng)注意到agent每個示例中的指令。該 agent指令告訴Jenkins在哪里以及如何執(zhí)行Pipeline或其子集。如您所料,agent所有Pipeline都是必需的。

在引擎蓋下,有幾件事情agent會發(fā)生:

  • 該塊中包含的所有步驟均排隊等待Jenkins執(zhí)行。一旦執(zhí)行者可用,步驟就會開始執(zhí)行。
  • 將分配一個工作區(qū),其中將包含從源代碼管理檢出的文件以及Pipeline的任何其他工作文件。

有幾種方法可以定義代理在Pipeline中使用,對于本次巡視,我們將僅關(guān)注使用短暫的Docker container。

Pipeline設(shè)計用于容易地使用Docker圖像和容器在里面運行。這允許Pipeline定義所需的環(huán)境和工具,而無需手動配置各種系統(tǒng)工具和對代理的依賴。這種方法允許您幾乎可以使用可以打包在Docker容器中的任何工具 。

Jenkinsfile (Declarative Pipeline)
pipeline {
    agent {
        docker { image 'node:7-alpine' }
    }
    stages {
        stage('Test') {
            steps {
                sh 'node --version'
            }
        }
    }
}

Toggle Scripted Pipeline (Advanced)

Jenkinsfile (Scripted Pipeline)
node {
    /* Requires the Docker Pipeline plugin to be installed */
    docker.image('node:7-alpine').inside {
        stage('Test') {
            sh 'node --version'
        }
    }
}

當(dāng)Pipeline執(zhí)行時,Jenkins將自動啟動指定的容器并執(zhí)行其中定義的步驟:

[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] sh
[guided-tour] Running shell script
+ node --version
v7.4.0
[Pipeline] }
[Pipeline] // stage
[Pipeline] }

混合和匹配不同容器或其他代理時,在執(zhí)行Pipeline時可以有很大的靈活性,有關(guān)更多配置選項,請繼續(xù)使用使用環(huán)境變量”。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號