Django Cookiecutter с использованием шаблона переменных среды в производстве

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

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

https://cookiecutter-django.readthedocs.io/en/latest/developing-locally-docker.html

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

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

Правильно ли мое понимание:

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

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

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

ИЛИ ЖЕ

ЗАПУСК merge_production_dotenvs_in_dotenv.py локально, чтобы создать файл.env, который я копирую на производство, и настроить мой production.yml для его использования?

Спасибо Крис

2 ответа

Решение

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

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

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
Другие вопросы по тегам