Текст и данные · Инструкция
Как дождаться готовности сервисов через compose up --wait
Для CI это лучше фиксированного sleep: readiness зависит от состояния сервисов и их healthchecks.
Короткий ответ
`docker compose up -d --wait` ждёт, пока сервисы достигнут ожидаемого running/healthy состояния, прежде чем вернуть успешный результат.
Что делать
- Добавить healthcheck: Для сервисов, где running не равен ready, задайте корректный healthcheck.
- Запустить с ожиданием: Выполните `docker compose up -d --wait`; при необходимости добавьте `--wait-timeout <seconds>`.
- Продолжить после успеха: Только после нулевого exit code запускайте интеграционные тесты; при таймауте изучите `compose ps` и логи.
Как понять, что получилось
- Команда завершается после достижения running/healthy состояния либо ошибкой/таймаутом, если готовность не наступила.
Что учесть
Плохой healthcheck делает `--wait` бессмысленным; проверка должна отражать реальную готовность приложения.
Что учитывать
Плохой healthcheck делает `--wait` бессмысленным; проверка должна отражать реальную готовность приложения.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. docker compose up). Пример и формулировки — редакция N1RO на 2026-09-18.