Ошибки и коды · Инструкция
Docker container unhealthy: диагностика HEALTHCHECK
Выполните `docker inspect <container>` и найдите последние health logs с exit code/output. Запустите ту же HEALTHCHECK-к
Короткий ответ
Посмотрите `.State.Health.Log` через `docker inspect`, вручную выполните ту же health-команду внутри container и исправьте endpoint/команду или параметры `interval`, `timeout`, `retries`, `start_period` вместо фиктивного `exit 0`.
Проверка по порядку
- Выполните `docker inspect <container>` и найдите последние health logs с exit code/output.
- Запустите ту же HEALTHCHECK-команду вручную через `docker exec`, если container работает.
- Проверьте, что используемый `curl`/`wget`/shell вообще присутствует в runtime image.
Исправление
- Для долгого старта настройте `start_period`, а не бесконечные retries после нормального старта.
- Если Compose-зависимость должна ждать готовности, используйте поддерживаемое условие `service_healthy`.
- Пересоздайте container и проверьте переход `starting` → `healthy` вместе с реальной доступностью endpoint.
Как понять, что исправлено
- docker inspect показывает status healthy, Health.Log содержит успешный probe, а сервис реально отвечает на проверяемом endpoint.
Важно
Не заменяйте HEALTHCHECK на exit 0: это скрывает сбой оркестрации. Исправьте probe, endpoint или timing после просмотра Health.Log.
Что учитывать
Не заменяйте HEALTHCHECK на exit 0: это скрывает сбой оркестрации. Исправьте probe, endpoint или timing после просмотра Health.Log.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. Dockerfile reference — HEALTHCHECK). Пример и формулировки — редакция N1RO на 2026-09-17.