2

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

我有一个物理从属设备(节点名称:jenkins-slave-01 和标签:mySlave),我可以通过在我的 jenkins 管道脚本上使用以下代码轻松地触发它的作业:

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

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

在作业配置中,“Docker Container”选项一旦触发物理slave就不足以触发docker容器。

我如何在管道作业中处理这个问题?是否有可能做到这一点?

4

1 回答 1

2

Jenkins 流水线作业总是在轻量级 Jenkins Master 执行器上启动(在它启动后,您可以在 Build Executor Status 概览中短暂看到它弹出)。node('[AGENT_NAME]')在您的 Pipeline 脚本中,您使用该步骤定义在哪个代理(从属)上执行哪个部分。

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

于 2017-06-08T08:52:08.717 回答