我正在寻找一种方法来在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, etc' . 我想要的是将这些图像用作某些管道作业的docker slave,但在这种工作中,没有显示将此作业链接到此标签(限制此项目可以运行的位置和Label表达式字段)的选项 .
在作业配置中,选项“Docker Container”不足以在触发物理从站时触发docker容器 .
我怎样才能在管道工作中处理这个问题?是否有可能做到这一点?
1 回答
Jenkins管道作业始终在轻量级Jenkins Master执行程序上启动(在启动之后,您可以在Build Executor状态概述中弹出它) . 在管道脚本中,使用
node('[AGENT_NAME]')
步骤定义在哪个代理(从属)上执行哪个部分 .请注意
[AGENT_NAME]
也可能是标签,因此如果您将docker agent设置为具有标签docker-agent
,则可以通过添加node('docker-agent')
步骤确保您的Pipeline在刚刚生成的docker代理上运行 .