停靠的Django REST应用程序和PostgreSQL数据库

停靠的Django REST应用程序和PostgreSQL数据库,django,postgresql,docker,Django,Postgresql,Docker,是否有任何方法可以使我在每次决定运行应用程序时不需要更改settings.py文件?我的意思是: -每次我想用docker compose my settings.py运行dockerized应用程序时,文件如下所示: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'agent_technologies_db',

是否有任何方法可以使我在每次决定运行应用程序时不需要更改settings.py文件?我的意思是:

-每次我想用docker compose my settings.py运行dockerized应用程序时,文件如下所示:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'agent_technologies_db',
        'USER': 'stefan_radonjic',
        'PASSWORD': 'cepajecar995',
        'HOST': 'db', 
        'PORT': '',
        }
}
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'agent_technologies_db',
        'USER': 'stefan_radonjic',
        'PASSWORD': 'cepajecar995',
        'HOST': 'localhost', 
        'PORT': '',
        }
}
-每次我想在本地计算机上运行我的应用程序时,我的settings.py如下所示:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'agent_technologies_db',
        'USER': 'stefan_radonjic',
        'PASSWORD': 'cepajecar995',
        'HOST': 'db', 
        'PORT': '',
        }
}
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'agent_technologies_db',
        'USER': 'stefan_radonjic',
        'PASSWORD': 'cepajecar995',
        'HOST': 'localhost', 
        'PORT': '',
        }
}
这有什么办法吗

下面是我的docker-compose.yml文件的外观:

version: '3'

services:
  db:
    image: postgres
    environment:
      - POSTGRES_USER=stefan_radonjic
      - POSTGRES_PASSWORD=cepajecar995
      - POSTGRES_DB=agent_technologies_db
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes: 
      - .:/agent-technologies
    ports: 
      - "8000:8000"
    links:
      - db
    depends_on:
      - db

最简单的方法:使用两个单独的设置文件

在本地计算机上运行时,请使用
settings.py

在Docker中运行时,使用
settings Docker.py
(或任何名称),并将此文件绑定到容器中,作为
settings.py
。这样,容器中的应用程序将只看到预期的
settings.py
文件

只需像这样修改docker-compose.yml文件(确保使用正确的路径):


我已通过以下链接提供的解决方案解决了此问题:


也许这个答案可以帮助你:这个链接很有帮助!非常感谢你!