如何将jenkins管道作业链接到docker从属容器上的标签

时间:2017-06-07 20:08:18

标签: docker jenkins jenkins-pipeline jenkins-slave

我正在寻找一种方法来在Jenkins奴隶中运行Jenkins作业/构建,由docker动态(按需)启动。方案如下:

我有一个物理从站(节点名称:jenkins-slave-01和label:mySlave),我可以通过在我的jenkins管道脚本上使用此代码轻松触发作业:

node ('jenkins-slave-01') {
stage ('Checkout and compile') {       
   //code ommited
}
...
//other stages ommited }

使用docker plugin,我将docker images configured作为docker模板,标签为“docker-slave-01,docker-slave-02等”。我想要的是将这些图像用作某些管道作业的docker slave,但在这种工作中,没有显示将此作业链接到此标签(限制此项目可以运行的位置和Label表达式字段)的选项。

在作业配置中,选项“Docker Container”不足以在触发物理从属设备时触发docker容器。

如何在管道作业中处理此问题?有可能这样做吗?

1 个答案:

答案 0 :(得分:2)

Jenkins管道作业始终在轻量级Jenkins Master执行程序上启动(在启动之后,您可以在Build Executor状态概述中弹出它)。在您的管道脚本中,您可以使用node('[AGENT_NAME]')步骤定义在哪个代理(从属)上执行哪个部分。

请注意,[AGENT_NAME]也可能是一个标签,因此,如果您要将泊坞代理设置为标签docker-agent,则可以通过添加标签来确保您的Pipeline在刚刚生成的泊坞代理上运行node('docker-agent')步骤。