2016-04-27 69 views
1

我从使用虚拟机软件切换到Docker。我从我的开发环境开始。Django和Docker:管理生产和开发环境之间的依赖关系

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

你如何管理这与码头?您使用不同的设置构建多个图像?还是有更好的解决方案来管理这个?

这里是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 

回答

2

您可以控制应用程序的与主机采取泊坞窗撰写的variable substitution功能的优势环境变量的所有行为。例如POSTGRES_USER,POSTGRES_PASSWORD可以在开发机器和部署机器中用不同的值定义为环境变量。 也可以有两个不同的构建图像中定义并使用每一个依赖于环境变量

build: ./project-${HOST} 

project-dev具有Dockerfile与dev的依赖关系,并在另一project-deploy Dockerfile。

+0

它完美的作品:)谢谢。 –

相关问题