我目前正在努力部署我的服务,我想问一下,当你必须处理多个存储库时,正确的方法是什么 . 存储库是独立的,但要在 生产环境 中运行,一切都需要启动 .
我的设置:
-
Git存储库后端:
-
后端项目导轨
-
docker-compose:backend(公开3000),db和redis
-
Git Repository Frontend
-
Express.js服务器
-
docker-compose :(暴露4200)
两者都可以独立运行,测试可以由CI执行
-
Git Repository Nginx for Production
-
需要连接其他两个服务(相同的docker网络)
-
将请求转发给正确的服务
我已经尝试将这两个服务作为子模块包含到Nginx存储库中并使用nginx repo的docker-compose,但我对此并不满意 .
1 回答
您可以为要运行的每个服务创建CI构建和推送映像,并让 生产环境 环境运行所有3个容器 .
然后,您的 生产环境
docker-compose.yml
将如下所示:请注意,建议不要在 生产环境 环境中使用docker-compose;您应该考虑使用分布式应用程序包(这仍然是一个实验性功能,将在版本1.13中发布到核心)
或者,您可以使用
ansible
或bash脚本等工具编排容器;只需确保您创建一个docker网络并将所有三个容器连接到它,以便他们可以找到彼此 .编辑:由于Docker v17和DAB的弃用支持Compose file v3,似乎对于单主机环境,
docker-compose
是运行多服务应用程序的有效方式 . 对于多主机/ HA /集群化方案,您可能需要查看Docker Swarm以获取自我管理的解决方案,或者Docker Cloud以获取更多PaaS方法 . 无论如何,我建议你在官方的在线沙箱_2438759中进行试用,在那里你可以分出多个主机并玩一个群集群,而不需要自己开箱子 .