Docker Compose

Compose pre_start Steps Validator

Проверить структуру секции pre_start (Docker Compose 5.3+) на типичные ошибки перед запуском.

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

Второго июля 2026 года в Docker Compose 5.3.0 бесшумно приехала штука, которую сообщество выпрашивало годами: нативная секция pre_start для init-контейнеров. До этого приходилось городить отдельный one-shot сервис с restart: "no" и связывать его через depends_on с condition service_completed_successfully — работало, но выглядело как костыль, который стесняешься показывать в код ревью.

Синтаксис новый, и опечатка в структуре списка шагов pre_start легко проходит мимо глаз, особенно если полгода писали YAML на автомате и руки сами тянутся к старым привычным конструкциям. Compose pre_start Steps Validator online проверяет, что каждый шаг имеет либо command, либо явно унаследованный образ, что список шагов — действительно список, а не одиночный объект по ошибке, и вежливо напоминает про главную особенность новой секции: шаги не транзакционны, сбой второго шага не откатывает первый как ни в чём не бывало.

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

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

С какой версии Docker Compose доступна секция pre_start?

С версии 5.3.0, выпущенной 2 июля 2026 года, на более старых версиях эта секция парсером просто не распознаётся и молча игнорируется в некоторых сборках.

Проверяет ли валидатор транзакционность шагов?

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

Что если у шага не указан ни command, ни image?

Валидатор пометит это как потенциальную проблему, потому что шаг без явной команды чаще всего означает забытую строку где-то посреди редактирования конфига.

Можно ли проверить несколько сервисов с pre_start одновременно?

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