在上一节中,你可能已经注意到每一个示例中的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] }
混合和匹配不一样的容器或其余代理,在执行管道时能够提供至关大的灵活性。代理