Параметр SECRET_KEY не должен быть пустым. Django docker

Я пытался найти решение на stack и других сайтах, но безрезультатно. Я бьюсь с django уже несколько дней.

Я получил свое приложение django dockerized и оно работает нормально. Я использую .env файл для работы с секретными переменными. И тут начинается проблема. Я не могу использовать travis CI или режим отладки в Visual Studio Code, потому что мои переменные env не видны. Когда я пытаюсь запустить travis или отладчик, я получаю ошибку "Параметр SECRET_KEY не должен быть пустым". Вопрос в том, как правильно настроить мое приложение django или экземпляр docker на использование переменных env в любой ситуации? Несколько дней назад я пытался написать secret_key, не скрывая его, но мой отладчик не работает при соединении с базой данных, так что кажется, что мои переменные вообще не видны. Но, как я уже сказал, когда я запускаю свое приложение в обычном режиме или как экземпляр docker, оно работает нормально, мой .env файл виден для django. Здесь вы можете найти мой settings.py

SECRET_KEY = os.getenv('SEC_KEY')
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': os.getenv('DB_NAME'),
        'USER': os.getenv('DB_USER'),
        'PASSWORD': os.getenv('DB_PASSWORD'),
        'HOST': os.getenv('DB_HOST'),
        'PORT': 5432

    }
}

А вот мой файл docker-compose:

version: '3.4'

services:
  electronicshop:
    image: electronicshop
    build:
      context: .
      dockerfile: ./Dockerfile
    ports:
      - "8000:8000"
    volumes:
      - .:/electronic_shop
    command: >
      sh -c "python manage.py migrate &&
             python manage.py runserver 0.0.0.0:8000"
    # env_file:
    #   - .env
    environment:
      - DB_HOST=db
      - DB_NAME=${DB_NAME}
      - DB_USER=${DB_USER}
      - DB_PASS=&{DB_PASSWORD}
      - DEBUG=1
    depends_on:
      - db
    restart: always

  db:
    image: postgres:14.1-alpine
    environment:
      - POSTGRES_DB=${DB_NAME}
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
    ports:
      - 5454:5454/tcp

Проблема решена. Мне пришлось добавить secret_key в окружение docker-compose.

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