[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-docker-chto-takoe-health-check-v-docker":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":19,"progress":20,"seo":21},718,"chto-takoe-health-check-v-docker",17,"docker","Docker","🐳","Что такое health check в Docker?","Health check — это механизм Docker, позволяющий определять, работает ли приложение внутри контейнера корректно. По результатам проверки контейнер получает один из статусов: `healthy`, `unhealthy` или `starting`.\n\n### Определение в Dockerfile\n\n```dockerfile\nHEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=60s \\\n  CMD wget --no-verbose --tries=1 --spider http:\u002F\u002Flocalhost:8080\u002Factuator\u002Fhealth || exit 1\n```\n\n### Параметры\n\n| Параметр | Описание | По умолчанию |\n|---|---|---|\n| `--interval` | Как часто выполнять проверку | 30 с |\n| `--timeout` | Максимальное время ожидания ответа | 30 с |\n| `--retries` | Сколько неудачных проверок подряд для статуса unhealthy | 3 |\n| `--start-period` | Начальный период, в течение которого неудачные проверки не учитываются | 0 с |\n\n### Определение в docker-compose.yml\n\n```yaml\nservices:\n  app:\n    build: .\n    healthcheck:\n      test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\",\n             \"http:\u002F\u002Flocalhost:8080\u002Factuator\u002Fhealth\"]\n      interval: 30s\n      timeout: 10s\n      retries: 3\n      start_period: 60s\n```\n\n### Использование с depends_on (Compose V2)\n\n```yaml\nservices:\n  app:\n    depends_on:\n      db:\n        condition: service_healthy\n\n  db:\n    image: postgres:16-alpine\n    healthcheck:\n      test: [\"CMD-SHELL\", \"pg_isready -U admin -d mydb\"]\n      interval: 10s\n      timeout: 5s\n      retries: 5\n```\n\n### Spring Boot Actuator\n\nДля Spring Boot рекомендуется использовать Spring Boot Actuator (`\u002Factuator\u002Fhealth`):\n\n```xml\n\u003Cdependency>\n    \u003CgroupId>org.springframework.boot\u003C\u002FgroupId>\n    \u003CartifactId>spring-boot-starter-actuator\u003C\u002FartifactId>\n\u003C\u002Fdependency>\n```\n\n```yaml\n# application.yml\nmanagement:\n  endpoints:\n    web:\n      exposure:\n        include: health\n  endpoint:\n    health:\n      show-details: never\n```\n\nВ Alpine-образах `curl` отсутствует по умолчанию, поэтому используйте `wget` (он есть в Alpine).\n\n> **На собеседовании:** health check нужен для двух целей: (1) Docker\u002Fоркестратор знает, жив ли контейнер, (2) `depends_on` с `condition: service_healthy` позволяет ждать реальной готовности сервиса, а не просто запуска контейнера. Для Spring Boot — используйте Actuator endpoint. Не забудьте про start_period — без него health check будет считать контейнер unhealthy во время запуска приложения.","","middle",[15,16,17,18,7],"healthcheck","actuator","spring-boot","monitoring",[],null,{"title":22,"description":23,"ogTitle":24,"ogDescription":25,"keywords":26,"schemaAnswer":35,"featuredSnippetReady":36},"Health check в Docker — Gymterview","Health check в Docker: определение в Dockerfile и docker-compose.yml, параметры (interval, timeout, retries, start_period), Spring Boot Actuator, depends_on.","Health check в Docker: Dockerfile и Compose — Gymterview","Механизм health check в Docker: статусы healthy\u002Funhealthy, параметры, интеграция с Spring Boot Actuator и depends_on condition.",[27,28,29,30,31,32,33,34],"Docker health check","HEALTHCHECK","healthy unhealthy","depends_on service_healthy","Spring Boot Actuator","start_period","docker-compose healthcheck","собеседование","Health check — механизм определения работоспособности приложения внутри контейнера. Статусы: healthy, unhealthy, starting. Параметры: interval (частота проверки), timeout (макс. ожидание), retries (попытки до unhealthy), start_period (начальный период без учёта неудач). Определяется в Dockerfile (HEALTHCHECK) или docker-compose.yml (healthcheck). Для Spring Boot используйте Actuator (\u002Factuator\u002Fhealth). В Alpine используйте wget вместо curl.",true]