Django считывает только некоторые значения окружающей среды

У меня есть проект Django, развернутый с помощью Docker, и теперь проект не загружает все мои значения окружения, указанные в файле .env. Считываются только некоторые из них. Вот мой .env файл:

DJANGO_DEBUG=changeme(1/0)
DB_NAME=changeme
DB_USER=changeme
DB_PASS=changeme
SECRET_KEY=changeme
EMAIL_PASSWORD=changeme
EMAIL=email@example.com
DOMAIN=example.com

А в setting.py я получаю доступ к значениям таким образом:

DEBUG = bool(int(os.environ.get('DJANGO_DEBUG', 0)))

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'HOST': os.environ.get('DB_HOST'),
        'NAME': os.environ.get('DB_NAME'),
        'USER': os.environ.get('DB_USER'),
        'PASSWORD': os.environ.get('DB_PASS'),
    }
}

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com.'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER = os.environ.get('EMAIL')
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_PASSWORD')

Все значения, связанные с базой данных, читаются правильно, также как и секретный ключ. Но остальные значения не читаются, и я не понимаю почему. В чем может быть проблема?

Проблема заключалась в том, что я не включил некоторые переменные среды в файл docker-compose.yml.

services:
  app:
    build:
      context: .
    restart: always
    volumes:
      - static-data:/vol/web
    environment:
      - DB_HOST=db
      - DB_NAME=${DB_NAME}
      - DB_USER=${DB_USER}
      - DB_PASS=${DB_PASS}
      - SECRET_KEY=${SECRET_KEY}
      - DJANGO_DEBUG=${DJANGO_DEBUG}
      - EMAIL=${EMAIL}
      - EMAIL_PASSWORD=${EMAIL_PASSWORD}
      - ALLOWED_HOSTS=${DOMAIN}
      - CSRF_TRUSTED=${CSRF_TRUSTED}
    depends_on:
      - db

После включения всех переменных в раздел app > environment, все работает хорошо!

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