Django не может прочитать переменную окружения докера

Я создаю окружение docker compose, и Django не может прочитать переменные окружения, которые я пытаюсь ему задать.

Внутри моего settings.py у меня есть этот кусок кода

...

import os

SECRET_KEY = os.environ["DJANGO_SECRET_KEY"]

DEBUG = os.environ["DEBUG"]

...

и он должен уметь читать переменные, которые я передаю контейнеру, и которые я пытался передать разными способами. Вот содержимое моего envfile:

DJANGO_SECRET_KEY="k64dpx9s1h!ijwafy-lif!(*)sabwk*w+rg#6=nu@ty2jkw%gc"
DEBUG="False"

Все нижеперечисленное приводит к тому, что django не может прочитать переменные во время сборки докера.


Первая попытка: env_file внутри compose.yaml

Это мой compose.yaml

services:
  django:
    env_file:
      - ./django/.env

Выдана ошибка: Keyerror


Вторая попытка: изменение пути к env_file

Это мой compose.yaml

services:
  django:
    env_file:
      - /some/other/random/path

Ошибка: нет такого файла или каталога (не надо возиться с несуществующими файлами, расположение файла правильное)


Третья попытка: жесткое связывание переменных

Это мой compose.yaml

services:
  django:
    environment:
      DJANGO_SECRET_KEY: "k64dpx9s1h!ijwafy-lif!(*)sabwk*w+rg#6=nu@ty2jkw%gc"
      DEBUG: "False"
    env_file:
      - ./django/.env

Выдана ошибка: Keyerror


Четвертая попытка: запуск автономного контейнера

Я попробовал запустить отдельный контейнер docker и указать переменные с помощью cmd

docker run -dp 127.0.0.1:8000:8000 \
   -e DJANGO_SECRET_KEY='k64dpx9s1h!ijwafy-lif!(*)sabwk*w+rg#6=nu@ty2jkw%gc' \
   -e DEBUG="False" django:v0

Выдана ошибка: Keyerror


Спасибо, что дочитали до конца. Надеюсь, никто не скажет мне, что нужно использовать dict.get(key) вместо dict[key], чтобы не возникало ошибок, ведь лучше получить ошибку, чем пустое значение или значение по умолчанию.

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