Docker Compose

Compose Profiles Extractor

Собрать список профилей и сервисов, которые к ним привязаны.

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

Большой compose файл с профилями для разных сценариев, debug, testing, full-stack, а вопрос какие сервисы входят в профиль compose конкретно требует то и дело открывать файл и искать глазами нужные строки profiles среди двадцати сервисов. Compose profiles extractor online собирает эту информацию в удобный список сразу для всех профилей.

Инструмент проходит по всем сервисам секции services и для каждого смотрит поле profiles, если оно есть, группируя результат по имени профиля, так что сразу видно, какие сервисы запустятся при docker compose --profile testing up, а какие останутся в стороне.

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

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

Что происходит с сервисами без явного поля profiles вообще?

Такие сервисы запускаются всегда, вне зависимости от выбранного профиля, они попадают в отдельную категорию сервисов без профиля в результате извлечения для полноты картины.

Может ли один сервис входить сразу в несколько профилей?

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

Как запустить только сервисы конкретного профиля через docker compose?

Команда docker compose с флагом --profile и именем профиля перед up запускает сервисы этого профиля вместе с сервисами без явного profiles, которые запускаются всегда.

Зачем вообще использовать профили вместо отдельных compose файлов?

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