n1ro°
RU

Ошибки и коды · Инструкция

Docker Compose depends_on не ждёт готовности БД: как использовать service_healthy

Типичный симптом: web-контейнер стартует раньше PostgreSQL/Redis, получает connection refused и падает, хотя Compose дей

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

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

`depends_on` задаёт порядок запуска, но обычное состояние running не означает готовность приложения. Добавьте healthcheck зависимому сервису и `condition: service_healthy` у потребителя.

Что делать

  1. Добавьте healthcheck: Опишите команду, реально проверяющую готовность сервиса, а не только существование процесса.
  2. Настройте интервалы: Задайте разумные `interval`, `timeout`, `retries` и при необходимости `start_period`.
  3. Измените depends_on: Укажите `condition: service_healthy` для нужной зависимости.
  4. Пересоздайте стек: Выполните `docker compose up -d --force-recreate` при необходимости.
  5. Проверьте health: Используйте `docker compose ps` и `docker inspect` для статуса/вывода healthcheck.

Важно

Не делайте healthcheck на внешний ресурс, если он не является условием готовности конкретного контейнера.

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

Не делайте healthcheck на внешний ресурс, если он не является условием готовности конкретного контейнера.

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

Фактическая часть сверена по первичным источникам (в т.ч. Control startup and shutdown order in Compose). Пример и формулировки — редакция N1RO на 2026-09-17.