Django和Docker:pipe理生产和开发环境之间的依赖关系

我从使用虚拟机软件切换到docker。 我开始我的开发环境。

我习惯于在base.pydev.pyprod.py之间分割我的设置文件。 prod.py有一些应用程序,我不需要在开发过程中,如newrelic /错误跟踪器和DEBUG=False

如何与dockerpipe理? 你用不同的设置build立多个图像? 还是有更好的解决scheme来pipe理呢?

这里是我使用docker-compose.yml文件:

 version: '2' services: db: image: postgres environment: POSTGRES_USER: 'user' POSTGRES_PASSWORD: 'pass' POSTGRES_DB: 'name' web: build: ./project image: project command: /usr/local/bin/gunicorn project.wsgi:application -w 2 -b :8000 --reload ports: - "8000:8000" depends_on: - db 

您可以利用Docker撰写的variablesreplacefunction,利用来自主机的环境variables来控制应用程序的所有行为。 例如,POSTGRES_USER,POSTGRES_PASSWORD可以在开发机器中定义为环境variables,在部署机器中定义为不同的值。 也可以定义两个不同的构build图像,并根据envvariables使用每个构build图像

 build: ./project-${HOST} 

并在project-dev有一个Dockerfile与开发依赖项,并在project-deploy另一个Dockerfile。