我对docker worlflow很新,我想知道什么是docker CD / CI工作流程的最佳做法...现在大多数文章似乎并没有真正谈论"部署& #34;码头工人的一部分,只有登记。
我想做什么:
为了实现步骤1-5,我有以下堆栈。
用户推送到gitlab - > Gitlab webhook通知jenkins - >詹金斯建立项目 - >将图像存储在gitlab docker注册表中。
我正在使用Rancher进行docker图像部署...我非常喜欢Rancher的分布式。即我可以指定一个docker镜像来运行,而rancher负责管理哪个服务器来部署我的容器。
理想情况下,我希望第6步成为"分发" (即我不想ssh到服务器并运行docker run {imagename}
)并让一些服务成为部署的权限
目前有什么类似的东西可以让我实现这个目标吗?
答案 0 :(得分:1)
至于最后一步,以Rancher为例(许多其他人也提供类似的REST API),你可以让Jenkins调用Rancher API来进行服务升级,前提是你需要将自己的堆栈定义为Rancher定制服务目录。
我也在寻找轻量级解决方案,并乐于了解替代方案。
答案 1 :(得分:0)
实现这一目标的方法有很多种。
最简单的方法之一是使用配置管理工具协调部署新映像。 Ansible是一个不错的选择,但其他人如木偶或厨师也很好。这些工具将让您完全控制必须部署的位置。您可以轻松地滚动更新,而不会中断流量,如example中所述。
另一种方法是依靠集群本身来自动部署服务。这种方法通常称为编排。像kubernetes这样的工具或者最近的码头工具和一些魔法是很好的选择。
作为旁注,后一种方法倾向于微服务架构,似乎更具吸引力,但实际上实现起来更复杂。它对构建集群执行的服务的方式做出了一些假设。然而,第一种方法适用于任何类型的软件。