Python 开发环境的Docker设置?

Python 开发环境的Docker设置?,python,django,docker,docker-compose,Python,Django,Docker,Docker Compose,我试图找出如何设置我当前的docker compose yaml文件以运行我的开发环境。我是docker的新手,但我得到了一个使用它的项目 version: '3' services: database: image: someinfo:9.5 environment: - POSTGRES_USER=user - POSTGRES_PASSWORD=pass volumes: - db-data:/var/lib/postgre

我试图找出如何设置我当前的docker compose yaml文件以运行我的开发环境。我是docker的新手,但我得到了一个使用它的项目

version: '3'
 services:
  database:
    image: someinfo:9.5
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=pass
    volumes:
      - db-data:/var/lib/postgresql/data
  backend:
    build: .
    command: bash /somepath/server/django_devserver.sh
    volumes:
    - .:/volumeinfo
    links:
    - database
    ports:
    - "8000:8000"
    environment:
      DJANGO_SETTINGS_MODULE: projectname.settings.production
      SCHEMA: https
      DB_HOST: database
      PYTHONUNBUFFERED: 1
 volumes:
  db-data:
目前,它正在my dev env中运行Django生产设置。我想保持这一点,但我还想告诉docker在dev服务器中运行我的dev设置。我该怎么做?我会用dev变量创建一个名为dev backend的新容器吗


那么我会运行
docker compose-up-dev-backend
或类似的程序吗?请原谅我的无知,今天是我与Docker的第一天。

最简单的方法是为您的开发环境创建一个单独的编写文件。复制此文件并更改适当的设置(如
DJANGO\u settings\u MODULE
)是一个良好的开端

默认情况下,
docker compose
搜索名为
docker compose.yml的文件,并使用该文件调出容器;但是您可以使用
-f
传入自定义文件名

[~]$ docker-compose -f dev.yml up
dev.yml
是开发设置文件的名称。它可以被称为任何东西,只要它是正确的YAML


最好将文档中的添加到书签中,因为这里有一个非常全面的指令和选项列表。最简单的方法是为您的开发环境创建一个单独的编写文件。复制此文件并更改适当的设置(如
DJANGO\u settings\u MODULE
)是一个良好的开端

默认情况下,
docker compose
搜索名为
docker compose.yml的文件,并使用该文件调出容器;但是您可以使用
-f
传入自定义文件名

[~]$ docker-compose -f dev.yml up
dev.yml
是开发设置文件的名称。它可以被称为任何东西,只要它是正确的YAML


最好将文档中的添加到书签中,因为这里有一个非常全面的指令和选项列表。我建议您尝试官方鼓励的方法:

#您的_config.dev.yml 版本:“3” 服务: 数据库: 环境: -POSTGRES_USER=dev_USER -POSTGRES_PASSWORD=dev_pass 后端: 环境: DJANGO_设置_模块:projectname.SETTINGS.development # ... 这就是您如何用一套用于开发的配置覆盖生产环境配置的方法:

docker compose-f your_config.yml-f your_config.dev.yml(build | up |…)


注意:这是假设您的_config.yml是问题中提出的。

我建议您尝试官方鼓励的方法:

#您的_config.dev.yml 版本:“3” 服务: 数据库: 环境: -POSTGRES_USER=dev_USER -POSTGRES_PASSWORD=dev_pass 后端: 环境: DJANGO_设置_模块:projectname.SETTINGS.development # ... 这就是您如何用一套用于开发的配置覆盖生产环境配置的方法:

docker compose-f your_config.yml-f your_config.dev.yml(build | up |…)

注意:这是假设
您的_config.yml
就是问题中给出的