【发布时间】:2016-10-27 09:26:42
【问题描述】:
我目前的设置:
- 当更改代码推送到 Github 时,Travis 触发构建。
- Travis 使用 Dockerfile 构建容器并推送到 dockerhub。
我需要达到的目标:
- 从 docker hub 生产环境中拉取容器。
- 运行暴露所需端口的容器。
方法:
- SSH 进入生产环境并拉取容器并运行(使用 travis.yml)。
我想在 Travis 构建成功后立即在生产环境中拉取并运行容器。 SSH 似乎很黑客,我需要最佳实践来实现这一点。
【问题讨论】:
-
您的生产环境是什么?它是某种云环境还是物理服务器?
-
Amazon EC2 linux 实例
-
是否可以选择使用托管 docker 解决方案?我们正在使用弹性 beantalk,CI 管道运行良好。这是一些额外的工作,但它会让您的部署更加顺畅。
-
我稍后会调查。暂时需要一个软解。
-
那么您的另外两个选项是使用 travis 在服务器上运行 bash 文件,正如您所提到的,这有点 hacky - 如果您尝试将实例添加到您的应用程序并执行,可能会出现问题滚动更新和蓝/绿部署(ECS 和 beanstalk 将为您提供开箱即用的功能)。另一种解决方案是为此使用工具 - 例如 AWS codedeploy 或 CM 工具,但这可能比启动 beanstalk 应用程序需要更多时间。