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, принять значение этой переменной.

Вернуться на верх