Запущенный контейнер и работающее приложение — не одно и то же. Процесс может подняться за долю секунды, а готовность принимать запросы наступит через десятки секунд: прогрев кэша, подключение к базе, применение миграций. Всё это время платформа считает сервис живым.
Проверка здоровья решает именно эту задачу. Контейнер сам сообщает, готов ли он, а зависимые сервисы могут дождаться этого состояния вместо того, чтобы стартовать и падать по кругу. Проверка должна быть дешёвой и честной: обращение к лёгкому служебному адресу, а не полный запрос к базе на каждой итерации.
Частая ошибка — делать проверку слишком строгой. Если она включает доступность всех внешних зависимостей, временный сбой соседнего сервиса объявит здоровое приложение больным и уронит его перезапуском.
Вторая ошибка — слишком короткий срок ожидания при старте. Тяжёлое приложение не успевает подняться и перезапускается бесконечно. Отдельный параметр времени на разогрев существует ровно для этого 🔍
—
Рядом по жанру: @kustovhire_gopc
Docker на Практике
@docker_practice_ru_n1k
Запущенный контейнер и работающее приложение — не одно и то же. Процесс может подняться за долю секунды, а гот
Этот пост опубликован в Telegram-канале Docker на Практике. Подписаться можно по ссылке: @docker_practice_ru_n1k.