docker工人在生产?

我打算使用docker来构build我的开发和生产环境。 我构build基于Django的应用程序。

在dev上,我使用docker-compose来pipe理所有本地容器。 这是一个不错的和方便的解决scheme。 我运行Django,3个芹菜队列,rabbitmq,2个postgresql数据库。

但是我的生产环境是完全不同的。 我需要运行gunicorn和nginx。 此外,数据库将使用AWS RDS运行。 当然,Django应用程序将需要更多的东西,如不同的设置文件或更多的环境variables。

我徘徊如何划分。 我也应该在docker-compose吗? 这将需要单独的文件的开发和生产,也许更多在未来的舞台等…如果是的话,如何部署它? 使用jenkins,拉,重新启动所有使用撰写?

或者,也许我应该使用可以直接运行docker命令? 但是我不相信我的开发者和现实生活一样,而且很难预测它的行为。

我喜欢在所有环境中运行组合文件的想法,但我不确定是否为不同环境维护多个文件是一个好主意。 开发需要更less的环境variables和更less的configuration。 我可以使用env文件来设置所有的生产。 但是,我应该保持我的生活设置在回购? 以前我在设置时设置了所有环境variables,这是单独的过程。 现在看起来configuration和部署是一样的吗? 也许这是Docker的方式?

使用http://docs.docker.com/compose/extends/#multiple-compose-files你可以将所有常用的东西保存在docker-compose.yml并使用docker-compose.prod.yml添加额外的服务,更改链接,环境和端口。

Interesting Posts