在设置我们的自动化环境时,我们的最终目标是:
我们的詹金斯服务器与一名詹金斯员工通信。这名工人在一台蒸汽机器内运行。然后,Jenkins工作人员将启动不同的其他Vagrant机器作为构建器,并在完成构建时将它们还原到给定的快照。
与此相关的一个复杂问题是,Jenkins工作人员已经是物理主机上的Vagrant来宾机器,应该直接在主机上启动另一台Vagrant来宾机器,而不是在其内部(这将是复杂的,并且与VirtualBox提供程序一起进行非优化)。
有可能吗?如果是这样的话,是怎么做的?
注意:为了澄清问题,使用Docker可以在容器内启动同级容器,遵循本文中的方法:http://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/ (请参阅解决方案部分)
编辑(一些基本原理):
我们知道可以用Docker实现同级容器启动(参见提供的链接),但是我们不能使用Docker,因为我们需要作为构建器运行的VM必须同时是OS和Windows。
有些建议可能是让Jenkins工作人员作为宿主环境,从那里生成Vagrant将是微不足道的。然而,出于以下几个原因,我们强烈倾向于避免这种情况:
发布于 2018-10-25 02:09:37
流浪汉不是为此而设计的,也不可能做到这一点。
正如您还指出的,Docker更适合这项工作,但是DiD可能会过度使用,而是使用您自己的主机在Docker容器中启动Jenkins服务器。将主机的Docker套接字传递给这个容器,当您需要Jenkins工作人员时,在Jenkins服务器内启动一个新容器。
所有的容器都将直接在主机上运行,这样就更容易管理了。
请参阅下面作为起点的https://getintodevops.com/blog/the-simple-way-to-run-docker-in-docker-for-ci
https://stackoverflow.com/questions/52969397
复制相似问题