Переменные окружения в файле .env в Django и docker - PullRequest
0 голосов
/ 27 апреля 2020

Привет! Я использую Docker для создания веб-приложения Django для производства через Docker -Compose, и он использует файл .env.prod для переменных среды. * docker -compose файл отлично работает и развертывается на сервере без проблем через CI / CD на GitLab.

Я надеялся использовать такую ​​же структуру, но просто иметь файл .env.dev, поэтому мне не нужно изменять файл настроек каким-либо образом. Проблема в том, что я не могу найти, как установить переменные окружения из внешнего файла в режиме разработки. В настоящий момент команда "python manage.py runserver" не получает файл .env с данными. Единственный обходной путь, который я вижу, это наличие файла local_settings.py, которого я надеялся избежать. Пример того, чего я пытаюсь достичь, приведен ниже в файле settings.py.

DEBUG = int(os.environ.get("DEBUG", default=0))

с файлом .env.dev.

DEBUG=1
DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 149.28.188.180 [::1]

Заранее спасибо. Я уверен, что упускаю что-то легкое.

1 Ответ

0 голосов
/ 27 апреля 2020

Вы можете поместить команду «copy» в ваш локальный Dockerfile, который копирует ваш локальный файл .env для использования внутри docker контейнера. Например:

FROM alpine:latest
RUN apk add --update \
nodejs \
nodejs-npm && rm -rf /var/cache/apk/*
COPY package.json /package.json
RUN npm i --silent --prod
#COPY .env /.env
COPY app.js /app.js
COPY bin/ /bin
COPY lib/ /lib
COPY server/ /server
COPY sql/ /sql
EXPOSE 3002
CMD ["npm","start"]

Как видите, просто раскомментируйте строку с командой «copy», чтобы скопировать локальную среду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...