Django Cookiecutter с использованием шаблона переменных среды в производстве - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь понять, как работать с рабочими файлами .env в проекте, созданном django cookie cutter.

Документация для этого находится здесь:

https://cookiecutter -django.readthedocs.io/en/latest/developing-locally-docker.html#configuring-the-environment

Проект создается и создает папки .local и .production для переменных среды.

Я пытаюсь развернуть каплю в докере в цифровом океане.

Верно ли мое понимание:

Папка .production НИКОГДА не проверена в системе контроля версийи генерируются только в качестве примеров того, что нужно создать на рабочей машине, когда я готов к развертыванию?

Поэтому, когда я выполняю развертывание, в рамках этого процесса мне нужно выполнить извлечение / клонирование проекта на капле докера, а затем либо

вручную создать папку .production с производственнойСтруктура папок переменных среды?

ИЛИ

RUN merge_production_dotenvs_in_dotenv.py локально, чтобы создать файл .env, который я копирую на производство, и настроить мой production.yml для использования этого?

Спасибо Крис

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Производственные env-файлы НЕ входят в систему контроля версий, а только локальные.По крайней мере, это и есть намерение, производственные env-файлы не должны находиться под контролем исходного кода, поскольку они содержат секреты.

Однако они добавляются в образ docker при создании docker-compose при его запуске.Вы можете создать Docker-машину, используя драйвер Digital Ocean , активировать его из своего терминала и запустить созданный образ, запустив docker-compose -f production.yml -d up.

0 голосов
/ 18 февраля 2019

Django cookiecutter добавляет .envs/.production и вводит все в папке .envs/ в систему контроля версий.Это можно узнать, проверив файл .gitignore.Файл .gitignore не содержит .envs, что означает, что папка .envs/ включена в систему управления версиями.

Поэтому, когда вы хотите выполнить развертывание, вы клонируете / извлекаете репозиторий на свой сервер и ваш .production/папка тоже будет там.

Вы также можете запустить merge_production_dotenvs_in_dotenv.py, чтобы создать файл .env, но .env не будет проверен в системе контроля версий, поэтому вам придется скопировать файл на ваш сервер.Затем вы можете настроить файл docker-compose для включения path/to/your/project/.env в качестве env_file для любой службы, которой требуются переменные среды в файле.

Вы можете использовать scp для копирования файловс вашего локального компьютера на ваш сервер легко, как это:

scp /path/to/local/file username@domain-or-ipaddress:/path/to/destination
...