Docker принимает неверный файл настроек при создании образа
У меня есть приложение Django, где мои настройки помещены в папку с именем settings. Внутри этой папки у меня есть init.py, base.py, deployment.py и production.py.
Мой wsgi.py выглядит следующим образом:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp_settings.settings.production")
application = get_wsgi_application()
Проблема
Каждый раз, когда я создаю образ, Docker берет настройки из development.py вместо production.py. Я попытался изменить настройки с помощью этой команды:
set DJANGO_SETTINGS_MODULE=myapp_settings.settings.production
При использовании conda/venv все работает нормально, и я могу переключиться в режим производства, однако при создании образа Docker файл production.py вообще не принимается во внимание.
Вопрос
Есть ли что-то еще, о чем я должен знать, что вызывает подобные проблемы, и как я могу это исправить?
Да, есть еще кое-что, что вам нужно проверить:
При запуске контейнера docker можно указать переменные окружения.
Если вы объявите переменную окружения DJANGO_SETTINGS_MODULE=myapp_settings.development
, она будет переопределять то, что вы указали внутри wsgi.py!
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp_settings.settings.production")
приведенный выше код в основном означает: объявить "myapp_settings.settings.production"
по умолчанию но если объявлена переменная окружения DJANGO_SETTINGS_MODULE
, принять значение этой переменной.