我正在寻找一种方法来在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容器。
如何在管道作业中处理此问题?有可能这样做吗?
答案 0 :(得分:2)
Jenkins管道作业始终在轻量级Jenkins Master执行程序上启动(在启动之后,您可以在Build Executor状态概述中弹出它)。在您的管道脚本中,您可以使用node('[AGENT_NAME]')
步骤定义在哪个代理(从属)上执行哪个部分。
请注意,[AGENT_NAME]
也可能是一个标签,因此,如果您要将泊坞代理设置为标签docker-agent
,则可以通过添加标签来确保您的Pipeline在刚刚生成的泊坞代理上运行node('docker-agent')
步骤。