我目前的设置:
我需要实现的目标:
方法:
我希望在Travis构建成功后立即在生产中拉动和运行容器。 SSH似乎是黑客攻击,我需要最佳实践来实现这一目标。
答案 0 :(得分:1)
你有几个选择:
1 - 你真的想在DockerHub构建完成之后拉出图像,而不是在travis完成之后,在这种情况下你可以使用DockerHub webhooks来调用某种服务(它可以归结为任何类型的脚本)在您的服务器上,它将拉动图像并运行它。
来自https://docs.docker.com/docker-hub/repos/#/webhooks:
您可以使用Hub存储库webhook来通知人员,服务和 将新映像推送到存储库后的其他应用程序 (这也适用于自动构建)。例如,您可以触发 一旦图像出现就自动进行测试或部署 可用。
2 - 使用像Ansible这样的东西来避免SSH自己进入机器。您只编写一次Ansible角色,它将在您的Travis构建中运行。 Ansible有一个非常好的docker模块,所以你会很好。
3 - 使用更加适应的基础设施,如Amzon ECS,它基本上是一个或一组EC2实例,为您运行和管理Docker容器和图像。如果您知道如何旋转EC2实例,那么创建一个简单的ECS实例将不会成为问题。
我希望这会有所帮助。