n1ro°
RU

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

Как дождаться готовности базы в Docker Compose

Контейнер может уже работать как процесс, но ещё не принимать подключения. Поэтому readiness базы проверяют отдельно.

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

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

Короткий `depends_on` ждёт порядок старта, но не готовность БД. Добавьте базе `healthcheck`, а приложению — `depends_on: db: condition: service_healthy`.

Порядок действий

  1. Добавьте БД healthcheck, который реально проверяет готовность.
  2. В зависимом сервисе используйте длинную форму `depends_on`.
  3. Укажите `condition: service_healthy`.
  4. Запустите Compose и проверьте health через `docker compose ps`.

Перед завершением проверьте

  • Healthcheck проверяет сервис, а не просто PID.
  • Указано правильное имя сервиса.

Важно

Не заменяйте readiness фиксированным `sleep`: задержка нестабильна на разных машинах.

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

Не заменяйте readiness фиксированным `sleep`: задержка нестабильна на разных машинах.

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

Фактическая часть сверена по первичным источникам (в т.ч. Services — Compose Specification). Пример и формулировки — редакция N1RO на 2026-09-20.