HealthCheck | Docker
- HealthCheck | Docker
🧩 Documentação oficial
⚙️ 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_isreadypara 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