Docker Compose

Compose Healthcheck Generator

Сгенерировать healthcheck-блок для сервиса docker-compose.

Как это работает

Вопрос как написать healthcheck для сервиса docker compose встает регулярно, а помнить наизусть точный синтаксис test, interval, timeout и retries с нуля неудобно каждый раз. Compose healthcheck generator online собирает готовый блок по паре простых полей, команде проверки и интервалу.

Сгенерированный healthcheck блок включает разумные значения по умолчанию: interval пять секунд между проверками, timeout три секунды на саму команду, retries пять попыток подряд перед тем, как контейнер пометится unhealthy, эти значения можно и нужно подстроить под конкретный сервис.

Полезно применять в связке с condition service_healthy у зависимых сервисов, чтобы решить классическую проблему гонки при старте, когда приложение стартует раньше, чем база данных реально готова принимать соединения, а не просто запустила процесс.

Частые вопросы

Какую команду использовать в test для healthcheck PostgreSQL?

Стандартный выбор это pg_isready с указанием пользователя, эта утилита идет вместе с образом postgres и специально предназначена для проверки готовности сервера принимать соединения.

Что означает start_period в конфигурации healthcheck?

Это время в начале жизни контейнера, в течение которого неудачные проверки не считаются в счетчик retries, полезно для сервисов с долгой инициализацией, которым нужно время на прогрев перед первой успешной проверкой.

Как проверить healthcheck для сервиса без встроенных диагностических утилит?

Можно использовать простую проверку через curl на локальный endpoint здоровья приложения, если он есть, либо через nc для проверки доступности порта, если специализированной утилиты в образе нет.

Влияет ли healthcheck на потребление ресурсов контейнера?

Незначительно, но при слишком коротком interval проверка может выполняться заметно чаще, чем нужно, для большинства сервисов интервал в пять-десять секунд достаточен и не создает заметной нагрузки.