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