~/tools/env/to-compose

.env

.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 с путем к файлу вместо явного перечисления каждой переменной, это часто даже удобнее, но этот конкретный инструмент решает именно задачу явного перечисления переменных.