Docker CD工作流程 - 使docker主机提取新图像并进行部署

时间:2017-04-25 20:04:56

标签: docker continuous-integration continuous-deployment

我正在为我的组织设置CI / CD工作流程,但我错过了最后一块拼图。当然这是一个已经解决的问题,还是我必须自己编写?

全貌。

我在AWS上运行了几个EC2实例,每个实例都以其本机群模式运行docker。我在这里运行了一些服务,我已经通过docker service create ...手动启动了这些服务。

当开发人员提交源代码时,会向jenkins发送触发器以提取新代码并构建新的docker镜像,然后将其推送到我的私有注册表。

到目前为止一切顺利,但是如何将新映像放到我的docker主机上并且正在运行的容器自动更新到新版本?

Docker文档声明(here)注册表可以在将新图像推送到可配置端点时将事件发送到可配置端点。这是我想通过让我的docker主机然后拉新图像并使用新版本(具有相同的env标志,标签等等)停止,销毁和重启服务而自动做出反应,但我找不到任何符合我用例的解决方案。

我发现v2tec/watchtower但它不是群集感知的,也不能在写这个问题时从私人注册表中提取。

我希望我能在我的docker manager上部署一个docker镜像,它可以监听注册表事件(在将注册表配置指向它之后)并完成我需要的魔法。

成本是一个问题,但时间不那么重要,所以我更倾向于编写自己的解决方案,而不是采用收费服务。

1 个答案:

答案 0 :(得分:0)

您拥有的一个选项是使用SSH plugin从Jenkins通过SSH连接到swarm master,并在将新图像推送到注册表时拉出新图像并更新服务。