El comando healthcheck
en Docker Compose permite verificar el estado de salud de un servicio dentro de un contenedor, asegurando que la aplicación esté funcionando correctamente antes de que otros servicios dependientes inicien. Esto es útil para coordinar la carga de aplicaciones que dependen unas de otras y mejorar la estabilidad del entorno.
healthcheck
en Docker Compose
El healthcheck
en Docker Compose se configura dentro del archivo docker-compose.yml
bajo el servicio que se desea monitorear. Dentro de esta configuración, puedes definir el comando a ejecutar, el intervalo de verificación, el tiempo de espera y otras opciones.
healthcheck
Opción | Descripción |
---|---|
test
|
Comando que ejecuta la verificación de salud (puede ser una cadena o lista de comandos). |
interval
|
Frecuencia de la verificación (por defecto 30s). |
timeout
|
Tiempo máximo para que la verificación se complete (por defecto 30s). |
retries
|
Número de intentos fallidos antes de que el servicio se marque como unhealthy .
|
start_period
|
Tiempo de espera antes de realizar la primera verificación, útil para servicios que tardan en iniciar. |
Aquí tienes un ejemplo de configuración healthcheck
para un contenedor de base de datos en Docker Compose:
version: '3.8'
services:
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: example
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 3
start_period: 30s
En este ejemplo:
mysqladmin ping
para verificar si el servicio MySQL está disponible.
unhealthy
.
healthcheck
services:
web:
image: nginx:latest
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost || exit 1"]
interval: 15s
timeout: 3s
retries: 3
services:
redis:
image: redis:latest
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 3
start_period: 5s
Para más detalles, consulta la documentación oficial de Docker sobre Healthcheck.
Jorge García
Fullstack developer