~/tools/docker-compose/merge

Docker Compose

Docker Compose Merge

Объединить базовый и override compose-файлы.

Как это работает

Docker compose поддерживает механизм override файлов из коробки через флаг минус f, но иногда нужно просто посмотреть глазами, как будет выглядеть итоговый объединенный конфиг, без запуска реальных контейнеров. Docker compose merge online объединяет базовый файл и override в один итоговый YAML документ прямо в браузере.

Слияние работает по тем же принципам, что и в самом docker compose: объекты объединяются рекурсивно поле за полем, а массивы вроде ports или volumes из override файла добавляются к массиву базового файла, а не полностью его заменяют, что соответствует реальному поведению docker compose при слиянии конфигов.

Полезно применять для отладки сложных многофайловых compose конфигураций, для документации итогового состояния сервисов после применения override, или для code review, когда нужно быстро понять, что реально изменится после добавления нового override файла к существующему стеку.

Частые вопросы

Соответствует ли логика слияния этого инструмента реальному поведению docker compose config?

Логика максимально приближена к реальному поведению для самых частых случаев, объекты рекурсивно объединяются, а массивы конкатенируются, но перед боевым использованием стоит все равно сверяться с официальной командой docker compose config для полной уверенности в сложных случаях.

Что происходит, если override переопределяет image сервиса?

Простое значение вроде image полностью заменяется значением из override файла при совпадении имени поля, это соответствует ожидаемому поведению override конфигурации.

Можно ли объединить больше двух файлов подряд?

Этот инструмент рассчитан на два файла за одну операцию, для трех и более файлов результат первого слияния можно взять как базу для следующей операции слияния с третьим файлом.

Что если один и тот же порт объявлен в обоих файлах для одного сервиса?

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