.env to Docker Compose Environment
Превратить .env в блок environment для docker-compose.yml.
Как это работает
Локальный .env файл уже написан и отлажен, а теперь нужно перенести те же переменные внутрь docker-compose.yml в секцию environment конкретного сервиса? Переписывать вручную каждую строку из формата ключ равно значение в формат списка с дефисом скучно и чревато опечатками. Env to compose converter online делает эту конвертацию автоматически.
Инструмент читает пары ключ значение построчно, снимает кавычки, если они были в исходном файле, и оборачивает результат в готовый блок environment с правильным отступом, который можно сразу вставить внутрь описания нужного сервиса в docker-compose.yml.
Удобно применять при переносе локального окружения разработки в контейнеризованный запуск, когда .env файл уже существует и проверен, а держать одни и те же значения в двух разных местах и синхронизировать их руками совсем не хочется.
Частые вопросы
Куда вставлять сгенерированный блок environment в файле?
Блок нужно вставить внутрь описания конкретного сервиса в docker-compose.yml, на том же уровне отступа, что и другие поля сервиса вроде image или ports, отступы в результате уже подобраны для стандартной двухпробельной структуры YAML.
Что делать, если некоторые переменные из .env не должны попасть в контейнер?
Проще всего удалить ненужные строки из исходного .env текста перед конвертацией, либо вручную вычеркнуть лишние строки уже из готового результата после генерации.
Сохраняются ли кавычки вокруг значений с пробелами?
Кавычки из исходного env файла снимаются при парсинге, а в итоговом блоке environment значение выводится как есть, YAML в большинстве случаев корректно обрабатывает значения с пробелами и без явных кавычек.
Можно ли вместо этого использовать env_file вместо environment в compose?
Да, docker compose поддерживает прямое указание env_file с путем к файлу вместо явного перечисления каждой переменной, это часто даже удобнее, но этот конкретный инструмент решает именно задачу явного перечисления переменных.