Текст и данные · Инструкция
Как дождаться готовности базы в Docker Compose
Контейнер может уже работать как процесс, но ещё не принимать подключения. Поэтому readiness базы проверяют отдельно.
Короткий ответ
Короткий `depends_on` ждёт порядок старта, но не готовность БД. Добавьте базе `healthcheck`, а приложению — `depends_on: db: condition: service_healthy`.
Порядок действий
- Добавьте БД healthcheck, который реально проверяет готовность.
- В зависимом сервисе используйте длинную форму `depends_on`.
- Укажите `condition: service_healthy`.
- Запустите Compose и проверьте health через `docker compose ps`.
Перед завершением проверьте
- Healthcheck проверяет сервис, а не просто PID.
- Указано правильное имя сервиса.
Важно
Не заменяйте readiness фиксированным `sleep`: задержка нестабильна на разных машинах.
Что учитывать
Не заменяйте readiness фиксированным `sleep`: задержка нестабильна на разных машинах.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. Services — Compose Specification). Пример и формулировки — редакция N1RO на 2026-09-20.