我已经设法在我们组织的 Linux 和 Windows 主机上设置 Docker 以供内部使用。
现在我想设置一些“自我清洁”的 DevOps 工作代理;我已经在 Windows 主机上准备了一个基于 Windows 的 DevOps 代理映像,它拥有我们内部构建管道所需的一切,并且在启动时连接到我们的 DevOps。一旦启动,它将继续运行管道作业,直到手动停止。我也可以--once
在启动代理本身时使用该标志,让它在关闭之前只处理一项工作(脚本有问题,但与这个问题无关)。
作为参考,我正在尝试设置此 MS 文档中一般描述的内容:
如果您希望每个管道运行都有一个新的代理容器,请将 --once 标志传递给运行命令。您还必须使用容器编排系统(如 Kubernetes 或 Azure 容器实例)在工作完成时启动容器的新副本。
我的问题是哪些本地编排系统能够处理重新创建停止的容器,哪些在设置方面是“轻量级的”?Kubernetes 被明确提及,但感觉它是一个非常庞大且复杂的系统,仅用于我们内部的 DevOps 管道(以及类似的工具minikube
并且kind
并不真正打算与 Server Core 主机一起使用)。Docker Swarm 似乎更容易设置,但我不确定它是否可以处理我想到的场景。
Docker Swarm
docker swarm init
将根据需要自动启动停止的容器,并且可以仅使用命令创建单节点 swarm 。因此,如果 Docker 已经安装并运行,那么设置起来非常容易。显然,这可以通过根据需要向 swarm 添加额外的 docker 主机来扩大规模。