在上一節中,你可能已經注意到每一個示例中的agent
指令,agent
指令告訴Jenkins在何處以及如何執行管道或其子集,正如你所料,全部管道都須要agent
。node
在引擎下,agent
致使一些事情發生:docker
有幾種方法能夠定義在管道中使用的agent
,對於本指南,咱們只關注使用短暫的Docker容器。shell
管道旨在輕鬆使用Docker鏡像和容器在內部運行,這容許管道定義所需的環境和工具,而無需手動配置各類系統工具和代理依賴性,這種方法容許你使用幾乎任何能夠打包在Docker容器中的工具。segmentfault
有關更多代理規範選項,請參閱語法參考。ide
Jenkinsfile (Declarative Pipeline) pipeline { agent { docker { image 'node:7-alpine' } } stages { stage('Test') { steps { sh 'node --version' } } } }
腳本管道(高級):工具
Jenkinsfile (Scripted Pipeline) node { /* Requires the Docker Pipeline plugin to be installed */ docker.image('node:7-alpine').inside { stage('Test') { sh 'node --version' } } }
當管道執行時,Jenkins將自動啓動指定的容器並執行其中定義的步驟:ui
[Pipeline] stage [Pipeline] { (Test) [Pipeline] sh [guided-tour] Running shell script + node --version v7.4.0 [Pipeline] } [Pipeline] // stage [Pipeline] }
混合和匹配不一樣的容器或其餘代理,在執行管道時能夠提供至關大的靈活性。代理