如何在Jenkins + Docker中为PostgreSQL以外的数据库指定其他名称

时间:2018-10-08 10:07:34

标签: python django docker

在服务器上部署任何项目时,我想在Django结构的settings.py中提供不同的数据库名称。我必须在哪里更改数据库名称?

我的docker-compose.yml文件如下。

version: '3'

services:

  db:

    image: postgres

  web:

    build: .

    command: bash -c "python manage.py makemigrations && python manage.py migrate  && python manage.py runserver 0.0.0.0:8000"

    volumes:
      - .:/code

    ports:
      - "8000:8000"

    depends_on:

      - db

我的数据库配置在settings.py

中是这样的
DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.postgresql_psycopg2',

        'NAME': 'postgres',

        'USER': 'postgres',

        'HOST': 'db',

        'PORT': 5432,

    }

}

我必须在哪里更改数据库名称?

1 个答案:

答案 0 :(得分:2)

您可以使用POSTGRES_DB环境变量。来自Postgres docker图像文档:

  

POSTGRES_DB此可选环境变量可用于定义一个   映像时创建的默认数据库的其他名称   首先开始。如果未指定,则值   将使用POSTGRES_USER。

docker-compose.yml文件为:

version: '3'

services:    
  db:    
    image: postgres
    env:
      POSTGRES_DB: <DATABASE NAME>
  web:    
    build: .    
    command: bash -c "python manage.py makemigrations && python manage.py migrate  && python manage.py runserver 0.0.0.0:8000"    
    volumes:
      - .:/code    
    ports:
      - "8000:8000"    
    depends_on:    
      - db

-

DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.postgresql_psycopg2',

        'NAME': '<DATABASE NAME>',

        'USER': 'postgres',
    'HOST': 'db',

    'PORT': 5432,

  }

}