Django& Docker:管理生产与生产之间的依赖关系开发环境

时间:2016-04-27 17:13:19

标签: django docker docker-compose

我正在从使用虚拟机轻松切换到docker。我从开发环境开始。

我习惯将我的设置文件分为base.pydev.py以及prod.pyprod.py有一些我在开发过程中不需要的应用,例如newrelic / error trackers和DEBUG=False

你如何用docker管理这个?您使用不同的设置构建多个图像?或者有更好的解决方案来管理它吗?

以下是我使用的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

1 个答案:

答案 0 :(得分:2)

您可以利用docker compose的variable substitution功能,使用来自主机的环境变量控制应用程序的所有行为。例如,POSTGRES_USER,POSTGRES_PASSWORD可以在您的开发机器和具有不同值的部署机器中定义为环境变量。 您还可以定义两个不同的构建映像,并根据env变量使用每个映像

build: ./project-${HOST}

并且在project-dev中有一个具有dev依赖关系的Dockerfile和project-deploy另一个Dockerfile。