我计划使用docker来构建我的开发和生产环境.我构建基于Django的应用程序.
在dev上我使用docker-compose来管理所有本地容器.这是一个不错而方便的解决方案.我运行Django,3芹菜队列,rabbitmq,2 postgresql数据库.
但我的生产环境却截然不同.我需要运行gunicorn和Nginx.此外,DB将使用AWS RDS运行.当然Django应用程序将需要更多的东西,比如不同的设置文件或更多的env vars.
我在徘徊如何划分它.我也应该在那里停泊吗?这将需要dev和prod的单独文件,将来可能更多用于登台等…如果是,如何部署它?使用Jenkins,拉,重启所有使用compose?
或者也许我应该使用ansible直接运行docker命令?但后来我不相信我的开发与现场相同,而且很难预测它的行为.
我喜欢在所有环境中运行撰写文件的想法,但我不确定是否为不同的环境维护多个文件是个好主意. Dev需要更少的环境和更少的配置.我可以使用env文件在生产中设置所有这些文件.但是我应该将我的实时设置保留在se repo中吗?以前我在配置时设置了所有env变量,这是一个单独的过程.现在看来配置和部署是一样的吗?也许这是Docker的方式?
最佳答案
使用http://docs.docker.com/compose/extends/#multiple-compose-files,您可以将所有常见内容保存在docker-compose.yml中,并使用docker-compose.prod.yml添加额外服务,更改链接,环境和端口.
原文链接:https://www.f2er.com/docker/436176.html