Running ещё не значит готов
Выбираем полезный сигнал здоровья и разбираем ошибки самой проверки.
После урока вы сможете
- Различать состояние процесса и результат HTTP-проверки
- Выбирать условие готовности
- Читать результат healthcheck
Договоримся, что считать работой
Представьте сервис, который принимает соединение, но на каждый запрос возвращает 500. Процесс существует, однако пользовательский сценарий сломан. Запишите отдельные утверждения: процесс запущен; HTTP-обработчик отвечает; ответ имеет нужную структуру; бизнес-операция выполняется. Один зелёный индикатор не доказывает сразу всё.
Для нашего приложения минимальная готовность — успешный GET-запрос к / на порту 8000. Функциональный тест дополнительно разбирает JSON и проверяет поле message. Разделение помогает понять сбой: сервер может быть доступен, но отдавать неверное сообщение.
HTTP 200
Content-Type: application/json
{"message": "Hello, Docker!"}
Перед следующей практикой придумайте контрпример: какая неисправность пройдёт проверку доступности, но не функциональный тест? Например, обработчик всегда возвращает пустой JSON. Такой пример показывает границу проверки лучше общего слова «работает».