我的当前设置:
- 当代码更改推送到Github时,Travis触发构建。
- Travis使用Dockerfile构建容器并推送到dockerhub。
我需要实现的目标:
- 在生产环境内从docker hub拉取容器。
- 运行容器并暴露所需端口。
解决方法:
- 通过SSH进入生产环境,拉取并运行容器(使用travis.yml)。
我想在Travis构建成功后立即在生产环境中拉取和运行容器。 SSH似乎是一种不安全的做法,我需要最佳实践来实现这一点。
我的当前设置:
我需要实现的目标:
解决方法:
我想在Travis构建成功后立即在生产环境中拉取和运行容器。 SSH似乎是一种不安全的做法,我需要最佳实践来实现这一点。
2 - 使用类似 Ansible 的工具避免自己 SSH 进入机器。你只需编写一个 Ansible 角色,它就会在 Travis 构建中运行。Ansible 有一个非常好的 docker 模块,所以你会很好地完成任务。您可以使用 Hub 存储库 webhook 来通知人员、服务和其他应用程序,在新映像推送到您的存储库后发生这种情况(这也适用于自动化构建)。例如,您可以在映像可用时触发自动化测试或部署。
3 - 使用更适合的基础架构,比如亚马逊ECS,它基本上是一个或一组EC2实例,为您运行和管理Docker容器和镜像。如果您知道如何创建EC2实例,那么创建简单的ECS实例将不会成为问题。
希望这可以帮助到您。