每次我决定运行我的应用程序时,有什么方法我不需要更改我的settings.py文件?我的意思是:
- 每次我想用docker-compose运行dockerized应用程序我的settings.py文件如下所示:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'agent_technologies_db',
'USER': 'stefan_radonjic',
'PASSWORD': 'cepajecar995',
'HOST': 'db',
'PORT': '',
}
}
- 每当我想在我的本地机器上运行我的应用程序时,我的settings.py看起来像这样:
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
答案 0 :(得分:0)
最简单的方法:使用两个单独的设置文件。
在本地计算机上运行时,请使用settings.py
。
在Docker中运行时,使用settings-docker.py
(或任何名称),并将此文件绑定到容器settings.py
。这样,容器内的应用程序将只按预期显示settings.py
文件。
只需像这样修改docker-compose.yml文件(确保使用正确的路径):
volumes:
- .:/agent-technologies
- settings-docker.py:/app/settings.py
答案 1 :(得分:0)
我已按照以下链接提供的解决方案修复了此问题: