在现有奴隶上使用 docker 的 Jenkins 管道

Den*_*boy 5 architecture jenkins docker

我们有以下詹金斯设置:

  • 詹金斯大师
  • 詹金斯奴隶1
  • 詹金斯奴隶2
  • 詹金斯奴隶3

这些都是虚拟机,而且从机确实一直存在。它们不会自动上下生成。

现在我们的构建需要很多工具(maven、python、aws cli,...)。我们可以在每个从属设备上安装所有工具,一切都会正常工作。但是我们想建立一个 docker 方法。

我看过的几乎所有教程都在 Docker 中使用了 slaves。他们使用一些编排工具,如 Kubernetes,并在 Docker 中创建从属,做他们的事情并再次删除 pod。

我们没有可能这样做:

问题:将“旧”Jenkins 设置与我们使用 docker 的真实 VM 从站一起使用是否是一种不错的方法?

我在想的是写一个管道,在每个阶段我们使用一个 docker 容器:

  • 开始构建(它将选择一个从站,例如 Slave1)
  • 管道将启动
  • 阶段1:启动例如一个python容器:git clone并执行python命令。将卷挂载到工作区??
  • 阶段 2:启动例如 aws 容器并挂载工作区的内容并执行新命令等。

有人可以评估这种方法吗?

yam*_*enk 2

这是一个非常好的做法。事实上,执行此操作的方法记录在jenkins 文档下的Using multiple containers部分中。

在每个阶段中,您基本上都会使用必要的可用工具来启动一个容器,并且您可以使用一个卷来将阶段的输出保留到工作区中,以便其他阶段可以使用它。