>_ IzzyLab

Практическое задание

docker-compose: healthcheck и зависимость

средне

В /root/docker-compose.yml опиши два сервиса: db (postgres) с healthcheck и app (nginx), который стартует только когда db здоров (depends_on с condition: service_healthy).

Что потренируешь:
  • docker compose
  • healthcheck
  • depends_on
  • service_healthy
  • yaml

Разбор темы

Обычный depends_on в Compose гарантирует лишь порядок старта контейнеров, но не ждёт, пока сервис внутри реально готов принимать соединения — отсюда гонки при первом запуске стека. Чтобы дождаться настоящей готовности, сервису задают healthcheck с командой-пробой (test), нулевой код которой означает «здоров», плюс параметры интервала и числа попыток. Зависимый сервис использует расширенную форму depends_on — мапу, где для нужного сервиса указывается condition ожидания здоровья.

Что проверяется

  1. YAML синтаксически валиден
  2. у db есть healthcheck
  3. app ждёт здоровья db

Как это выглядит