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]
, чтобы не возникало ошибок, ведь лучше получить ошибку, чем пустое значение или значение по умолчанию.