n1ro°
RU

Текст и данные · Инструкция

Как подключать другие Compose файлы через top-level include

`include` удобен, когда разные команды поддерживают самостоятельные Compose-файлы, а общий проект должен собрать их вмес

Редакция N1RO · Проверено

Короткий ответ

В актуальной Docker how-to для top-level `include` указано требование Docker Compose 2.20.3+. `include` загружает отдельные Compose applications после merge родительской модели; конфликтующие имена ресурсов не объединяются автоматически.

Что делать

  1. Проверьте версию командой `docker compose version`: для текущей how-to Docker требуется Compose 2.20.3 или новее.
  2. В основном файле добавьте `include: - ./commons/compose.yaml`.
  3. При необходимости используйте long syntax с `path`, `project_directory` и `env_file`.
  4. Запустите `docker compose config` и проверьте итоговую модель.
  5. Исправьте конфликты имён ресурсов, если Compose сообщает о них.
  6. Запустите проект и проверьте cross-service references на включённые services.

Важно

  • `include` и merge через несколько `-f` решают разные задачи; не смешивайте их семантику.
  • Подключаемый Compose файл имеет собственную базу для относительных путей по правилам include.

Что учитывать

`include` и merge через несколько `-f` решают разные задачи; не смешивайте их семантику.,Подключаемый Compose файл имеет собственную базу для относительных путей по правилам include.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. Include). Пример и формулировки — редакция N1RO на 2026-09-18.