Двенадцать факторных приложений для развертывания микросервисов Docker

Мне действительно нравятся идеи Манифеста Двенадцати Факторов. Я пытаюсь применить их к небольшому развертыванию в стиле микросервиса для проекта Python/Django. Проект Django упакован в контейнер Docker, который развертывается через Docker Hub.

Единственное, что я пытаюсь понять, - это как обращаться с файлами конфигурации и переменными среды. Общая мудрость 12-факторных приложений заключается в том, что конфигурация должна храниться в виде переменных среды, а не в управлении исходным кодом. Я думаю о реализации этого с помощью django- environment, который проверяет переменные среды, а также .env файл для использования в dev.

Как мне установить эти переменные среды в производстве?

  • В Docker можно объявить переменные среды как ENV в Dockerfile ( док). Таким образом, я могу добавить эту информацию туда, но я проверяю в Dockerfile исходный код, так что это побьет цель.
  • Я мог бы создать дополнительный .env файл для производства, а не проверять его в системе контроля версий. Я могу скопировать эту продукцию .env файл при создании изображения с помощью COPY команда. Но это означает, что разработчик будет иметь доступ к учетным данным БД.
  • Настройте пользовательский триггер сборки, чтобы при обновлении кода в исходном элементе управления запускался триггер сборки. Когда изображение строится, этот строительный узел добавляет это .env файл, и развертывается на сервере.

Я чувствую, что третий вариант - единственный, который имеет смысл. Но даже в этом случае элементы конфигурации все еще хранятся в файле, а не в переменных среды.

Есть идеи, как это сделать?

0 ответов

Другие вопросы по тегам