Skip to main content

HealthCheck | Docker

  • HealthCheck | Docker

🧩 Documentação oficial

👉 Docker Docs – HEALTHCHECK


⚙️ Sintaxe básica (Dockerfile ou docker-compose.yml)

healthcheck:
test: ["CMD", "comando", "argumentos"]
interval: 30s # tempo entre verificações
timeout: 10s # tempo máximo do comando
retries: 3 # quantas falhas antes de marcar 'unhealthy'
start_period: 5s # tempo antes de iniciar as verificações (opcional)

🧠 Exemplos práticos

🟥 Redis

services:
redis:
image: redis:7
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
timeout: 5s
retries: 3

Espera resposta “PONG” para marcar como saudável.


🟦 PostgreSQL

services:
postgres:
image: postgres:16
environment:
POSTGRES_PASSWORD: example
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 30s
timeout: 10s
retries: 5

Usa o utilitário interno pg_isready para testar conexão.


🟩 API / Web service (genérico)

services:
web:
build: .
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3

🟧 MySQL

services:
mysql:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: example
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h localhost -p$$MYSQL_ROOT_PASSWORD | grep 'mysqld is alive'"]
interval: 30s
timeout: 10s
retries: 5

🟨 Nginx

services:
nginx:
image: nginx:latest
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost" ]
interval: 30s
timeout: 5s
retries: 3