Как установить "DJANGO_SETTINGS_MODULE" для модуля "config", разделенного на общие, локальные, производственные файлы
Я настраиваю wsgi.py для развертывания моего приложения django в DigitalOcean, но я получаю следующие ошибки на этапе развертывания после успешной сборки. Судя по трассировке ошибок, я думаю, что проблема в os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config")
этой строке внутри wsgi.py.
Мои файлы конфигурации организованы как модуль python с общими, локальными и производственными настройками. Я не уверен, где и как решить эту проблему, и я застрял здесь уже несколько дней. Буду признателен за любой вклад!
ТРАССИРОВКА ОШИБКИ
дерево файлов
monorepo/backend-server
├── Dockerfile
├── README.md
├── config
│ ├── __init__.py
│ ├── common.py
│ ├── local.py
│ └── production.py
├── docker-compose.yml
├── manage.py
├── requirements.txt
├── urls.py
├── wait_for_postgres.py
└── wsgi.py
wsgi.py
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config")
os.environ.setdefault("DJANGO_CONFIGURATION", "Production")
# sys.path.append("/scraft-server")
from configurations.wsgi import get_wsgi_application # noqa
application = get_wsgi_application()
config.common.py
import os
from os.path import join
from distutils.util import strtobool
from dotenv import load_dotenv
import datetime
import dj_database_url
from configurations import Configuration
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
load_dotenv()
class Common(Configuration):
# settings
DockerFile
FROM python:3.8
ENV PYTHONUNBUFFERED 1
# Allows docker to cache installed dependencies between builds
COPY ./requirements.txt requirements.txt
RUN pip install -r requirements.txt
# Adds our application code to the image
WORKDIR /code/scraft-server
COPY scraft-server .
WORKDIR /code
EXPOSE 8000
# Run the production server
CMD newrelic-admin run-program gunicorn --bind localhost:$PORT --access-logfile - scraft-server.wsgi:application
в вашем dockerfile, используйте переменную окружения, такую как
ENV DJANGO_SETTINGS_MODULE backend-server.config.production