Jenkins 在码头工人中触发按需奴隶

Jenkins trigger on-demand slaves in dockers

我正在寻找一种方法 运行 Jenkins jobs/build 在 Jenkins 奴隶内部,动态(按需)启动 docker。附加模式以进行视觉理解。 我实际上在寻找什么,我的流程是这样的:

1) 触发 Jenkins 作业 (manually/git/gerrit)
2) Jenkins master (运行ning in docker) 启动从机 docker (并传递构建的 script/instructions)
3) 在 Jenkins slave(或 slaves if parallel/pipeline)运行ning 上构建
4) 结果返回给 Jenkins master
5) 詹金斯奴隶 docker 停止

这样可以吗?

使用这个插件:https://wiki.jenkins-ci.org/display/JENKINS/Yet+Another+Docker+Plugin

安装后(需要Java 1.8)naviaget 进行配置。有两个步骤:

  1. 配置docker"cloud"
  2. 添加 "instances"(docker 张图片)您想要 运行 在
  3. 上构建

每个图像都应该分配标签 - 在你的作业配置中使用这个标签来明确告诉 Jenkins 作业应该在哪个节点上 运行

  1. Docker slave image的创建步骤,如安装openssh,创建用户,下面会提到link。从下面安装 docker 插件 link.

    点击here

  2. 转到jenkins全局配置,在云标题下,docker配置将在那里,输入docker主机url和端口号,不需要凭据。为连接超时和读取超时提供一些值。

  3. 在docker模板下-输入我们在点号1中创建的docker图像名称。

  4. 设置标签编号(在创建 Jenkins 作业时给出此标签名称并限制为此从属名称),

  5. Select 使用选项 -> only build job with label restriction.

  6. No of executor -> minimum 1. Select launch method as ssh, 输入用户凭据登录,这是我们在第1步的docker图像中创建的.

创建一个作业,限制为 docker 从标签,运行,按需启动容器。