Секретный ключ docker-compose и django
Я создал свое приложение postgres и django, используя следующее
version: "3.8"
services:
django:
build: .
container_name: django
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/usr/src/app
ports:
- "8000:8000"
depends_on:
- db
db:
image: postgres
container_name: pgdb
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
Когда я проверяю docker-desktop, у меня есть 2 контейнера docker, "django" и "pgdb".
Когда я проверяю django, там написано
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.
Изначально на машине windows 10 я сохранил секретный ключ в переменной windows. Как собрать docker-compose, чтобы он получил секретный ключ?
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY')
Вам нужно будет создать .env файл с SECRET_KEY. В файле django_secrets.env вы можете хранить следующим образом: SECRET_KEY=my_secret_key
Затем в файле docker-compose.yml вы можете указать файл django_secrets.env:
version: "3.8"
services:
django:
build: .
container_name: django
command: python manage.py runserver 0.0.0.0:8000
env_file:
- ./django_secrets.env
volumes:
- .:/usr/src/app
ports:
- "8000:8000"
depends_on:
- db
db:
image: postgres
container_name: pgdb
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
Затем вы можете получить значение в файле settings.py следующим образом:
SECRET_KEY = os.environ.get("SECRET_KEY", 'my_default_secret_key')
Вы можете разместить файл django_secrets.env по любому пути, вам просто нужно указать путь в файле docker-compose.yml. Также вы можете назвать его так, как вам нравится