这是我的设置,此输出取自docker-machine ls
。使用docker机器配置群。
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
cluster-master * (swarm) digitalocean Running tcp://REDACTED:2376 cluster-master (master) v1.11.1
kv-store - digitalocean Running tcp://REDACTED:2376 v1.11.1
node-1 - digitalocean Running tcp://REDACTED:2376 cluster-master v1.11.1
node-2 - digitalocean Running tcp://REDACTED:2376 cluster-master v1.11.1
现在我正在寻找一种设置CI / CD工作流程的方法。这是我最初的想法:
问题:
答案 0 :(得分:1)
这个过程的第一部分看起来都很好。变得复杂的是管理已部署的生产容器。
是否可以在docker hub上运行测试,或者我应该依赖它 另一项服务?
是的,假设您不需要进一步的集成测试,在docker hub上运行测试应该没问题。
我需要将我的容器与amazon服务集成,并且进行相当非标准的部署,因此这部分测试必须在亚马逊实例上完成。
我的主要问题是将更改推送到docker swarm。我应该在远程计算机上设置docker-swarm并在那里托管应用程序吗?
如果您只是使用一台机器,则不需要增加使用swarm的开销。如果您计划扩展到更大的多节点部署,那么部署到远程计算机是因为您将尽快发现使用swarm的问题。
您需要考虑如何淘汰旧版本并将最新版本的容器引入群体,这通常称为调度。
可以使用的一种简单方法是:
这是通过声明服务在docker swarm中完成的。然后更新可以作为任务观看的图像。有关此流程详情的详细信息,请参阅Apply rolling update to swarm以及如何在亚马逊updating docker containers in ecs中执行此操作