← До списку лабораторних по Docker
Повний опис / сценарій лабораторної:
Мета: навчитися використовувати HEALTHCHECK щоб оркестратор розумів реальний стан сервісу.
Крок 1. Створити невеликий веб сервіс який має endpoint статусу.
Пояснення: наприклад /healthz який повертає 200 коли все добре.
Крок 2. Написати Dockerfile без HEALTHCHECK.
Пояснення: зібрати базовий образ і запустити контейнер.
Крок 3. Перевірити вихідний код через curl.
Команда: curl http://localhost:port/healthz
Крок 4. Додати у Dockerfile інструкцію HEALTHCHECK.
Пояснення: наприклад curl -f http://localhost:port/healthz || exit 1.
Крок 5. Зібрати новий образ.
Команда: docker build -t lab63-app .
Крок 6. Запустити контейнер і подивитися статус здоровʼя.
Команда: docker run -d --name lab63 lab63-app; docker ps
Пояснення: у стовпці STATUS має зʼявитися healthy або unhealthy з часом.
Крок 7. Навмисно зламати endpoint.
Пояснення: зміни код або заблокуй порт щоб перевірити реакцію healthcheck.
Крок 8. Перевірити що контейнер стає unhealthy.
Команда: docker ps; docker inspect lab63 --format "{{.State.Health.Status}}"
Крок 9. Додати healthcheck у docker compose файл.
Пояснення: використай секцію healthcheck з test interval retries.
Крок 10. Міні звіт.
Завдання: опиши як healthcheck впливає на перезапуск контейнерів у Swarm або іншому оркестраторі.