停靠的Django REST应用程序和PostgreSQL数据库
是否有任何方法可以使我在每次决定运行应用程序时不需要更改settings.py文件?我的意思是: -每次我想用docker compose my settings.py运行dockerized应用程序时,文件如下所示:停靠的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',
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文件(确保使用正确的路径):
我已通过以下链接提供的解决方案解决了此问题:
也许这个答案可以帮助你:这个链接很有帮助!非常感谢你!