使用Travis CI和Docker进行连续部署

Dan*_*Cat 5 continuous-deployment travis-ci docker

在CI环境中自动化Docker映像部署的最佳方法是什么?

在使用Travis CI构建了一个简单的Web项目并使用Dockerfile来构建相应的Docker映像之后,是否有一种方法可以自动将该映像部署到云提供商?

现在,Dockerfile将基本映像下拉到Travis构建机器,并根据Dockerfile中的指令构建映像。在这一点上,如果构建成功,我可以将其推送到Docker Hub,尽管我无需将该映像保存到Docker Hub,但我设想的是将成功构建的Docker映像部署到云提供程序(IE。DigitalOcean,Linode或AWS),然后启动/运行该映像。

dne*_*hin 4

虽然直接推送到主机似乎很理想,但我认为它忽略了主机可能失败或可能需要复制的事实。

如果您直接推送到生产主机,而该主机出现故障,则您无法在不重新运行整个 CI 管道的情况下启动另一台主机。

如果您推送到中介(集线器或 Docker 注册表),您可以根据需要创建任意数量的主机,而无需重新运行构建。您还可以非常轻松地在新主机上恢复(初始化脚本只需拉取映像并启动)。

如果您愿意,您可以在云提供商上运行您自己的注册表(而不是使用中心)。