我目前正在努力部署我的服务,我想问一下,当你必须处理多个存储库时,正确的方法是什么。存储库是独立的,但要在生产中运行,一切都需要启动。
我的设置:
两者都可以独立运行,测试可以由CI执行
我已经尝试将这两个服务作为子模块包含到Nginx存储库中并使用nginx存储库的docker-compose,但我对此并不满意。
答案 0 :(得分:13)
您可以为要运行的每项服务构建CI并推送映像,并让生产环境运行所有3个容器。
然后,您的作品docker-compose.yml
将如下所示:
lb:
image: nginx
depends_on:
- rails
- express
ports: 80:80
rails:
image: yourorg/railsapp
express:
image: yourorg/expressapp
请注意, docker-compose
不建议用于生产环境;您应该考虑使用Distributed Application Bundles(这仍然是一个实验性功能,将在版本1.13中发布到核心)
或者,您可以使用ansible
或bash脚本等工具来编排容器;只需确保创建一个docker网络并将所有三个容器连接到它,以便他们可以找到彼此。
编辑:由于Docker v17和DAB的弃用支持Compose file v3,似乎对于单主机环境,docker-compose
是运行多个的有效方式服务应用。对于多主机/ HA /群集方案,您可能需要查看Docker Swarm以获取自我管理的解决方案,或Docker Cloud查看更多PaaS方法。无论如何,我建议你在官方的在线沙箱Play-with-Docker中进行试用,在沙盒中你可以分出多个主机并玩一个群集群,而不需要自己开箱子。