【问题标题】:Django & Docker : manage dependencies between production & dev environmentDjango & Docker:管理生产环境和开发环境之间的依赖关系
【发布时间】:2016-04-27 17:13:19
【问题描述】:

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

我习惯于将我的设置文件拆分为base.pydev.pyprod.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

【问题讨论】:

    标签: django docker docker-compose


    【解决方案1】:

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

    build: ./project-${HOST}
    

    project-dev 中有一个带有开发依赖项的Dockerfile,在project-deploy 中有另一个Dockerfile。

    【讨论】:

      猜你喜欢
      • 2018-06-04
      • 2021-08-01
      • 2021-05-05
      • 2013-09-14
      • 1970-01-01
      • 2018-02-12
      • 2015-08-19
      • 2019-10-14
      • 1970-01-01
      相关资源
      最近更新 更多