n1ro°
RU

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

Как дождаться готовности сервисов через compose up --wait

Для CI это лучше фиксированного sleep: readiness зависит от состояния сервисов и их healthchecks.

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

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

`docker compose up -d --wait` ждёт, пока сервисы достигнут ожидаемого running/healthy состояния, прежде чем вернуть успешный результат.

Что делать

  1. Добавить healthcheck: Для сервисов, где running не равен ready, задайте корректный healthcheck.
  2. Запустить с ожиданием: Выполните `docker compose up -d --wait`; при необходимости добавьте `--wait-timeout <seconds>`.
  3. Продолжить после успеха: Только после нулевого exit code запускайте интеграционные тесты; при таймауте изучите `compose ps` и логи.

Как понять, что получилось

  • Команда завершается после достижения running/healthy состояния либо ошибкой/таймаутом, если готовность не наступила.

Что учесть

Плохой healthcheck делает `--wait` бессмысленным; проверка должна отражать реальную готовность приложения.

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

Плохой healthcheck делает `--wait` бессмысленным; проверка должна отражать реальную готовность приложения.

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

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