Есть ли способ избавить меня от необходимости изменять файл settings.py каждый раз, когда я решаю запустить приложение? Я имею в виду следующее:
-Каждый раз, когда я хочу запустить докеризованное приложение с помощью docker-compose, мой файл 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
Эта ссылка помогла! Большое спасибо!
Самый простой способ: использовать два отдельных файла настроек.
При запуске на локальной машине используйте settings.py
.
При запуске в Docker используйте settings-docker.py
(или другое имя) и привяжите этот файл к контейнеру как settings.py
. Таким образом, ваше приложение внутри контейнера, как и ожидалось, увидит только файл settings.py
.
Просто измените файл docker-compose.yml следующим образом (убедитесь, что указан правильный путь):
volumes:
- .:/agent-technologies
- settings-docker.py:/app/settings.py
Я устранил проблему, следуя решению, предоставленному по следующей ссылке:
Возможно, вам поможет этот ответ: stackoverflow.com/a/49237289/719247