Рейтинг:0

Как вызвать файл .env в проект Django, который работает в контейнере Docker на сервере K8s?

флаг es

Мне, скорее всего, нужна только подсказка в правильном направлении.

У меня есть док-контейнер с приложением Django, использующим пушку и nginx. Это приложение Django в настоящее время получает переменные среды из файла .env.

ИЗ питона: альпийский
ЭКСПОЗИЦИЯ 8000

ЗАПУСТИТЬ обновление apk
RUN apk add --no-cache git gcc musl-dev libffi-dev libxml2-dev libxslt-dev gcc swig g++
RUN apk add --no-cache jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev
RUN apk добавить --no-cache bash ffmpeg libmagic
RUN python3 -m pip install --upgrade pip
RUN python3 -m pip install --upgrade setuptools

ЗАПУСК mkdir /opt/приложение
РАБОЧИЙ КАТАЛОГ /opt/приложение
КОПИРОВАТЬ . .
ЗАПУСК python3 -m pip install /root/d12f/

ЗАПУСК pip3 install -r требования.txt
RUN pip3 установить пушку
CMD sh -c 'gunicorn --conf python:app.gunicorn_conf app.wsgi --bind 0.0.0.0:8000 --reload --информация на уровне журнала --access-logfile --timeout 360 --error-logfile - '

Конечно, в репозитории нет файла .env, так как это было бы угрозой безопасности.

Образ Docker создается github и хранится в частном пакете GitHub. Позже этот образ докера используется для запуска в Kubernetes.

Я пытаюсь найти лучшее решение для размещения файла .env в

/opt/приложение/приложение/.env

как локальный файл.

Я бы предпочел не использовать глобальные переменные среды, если это возможно.

Спасибо за любое предложение.

Рейтинг:1
флаг tz

Позже этот образ докера используется для запуска в Kubernetes.

Храните свои .env файл как Секрет с кубектл [1]:

kubectl создать секретный универсальный app-env --from-file=.env=/path/to/your/.env

Затем вы можете монтировать Секрет как объем в вашем Стручок определение [2], [3]:

---
апиВерсия: v1
вид: стручок
...
спецификация:
  контейнеры:
    ...
  - название: приложение
    изображение: ваше изображение:тег
    томМаунты:
    - name: app-env-vol # имя тома монтирования
      mountPath: /opt/app/app # в /opt/app/app
      readOnly: true # только для чтения
    ...
  тома:
    ...
  - имя: app-env-vol # создать том app-env
    секрет:
      secretName: app-env # с секретным именем.
    ...

Ваше приложение должно иметь доступ к своим окружениес в /opt/приложение/приложение/.env.

Рейтинг:-2
флаг cn

Использовать wget или команда облачного провайдера cli, чтобы отключить его во время выполнения.

Вы должны использовать какой-либо механизм аутентификации, чтобы защитить его в «хранилище файлов конфигурации», например, IAM и безопасный Bucket. Или ваше хранилище конфигураций также должно принимать файлы.

мв файл в соответствующую директорию opt.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.