From 103af25a65c1e324a3c4186c93d981a2574a150d Mon Sep 17 00:00:00 2001 From: groales Date: Sun, 30 Nov 2025 12:06:27 +0100 Subject: [PATCH] =?UTF-8?q?README:=20alinear=20con=20compose=20(flags,=20s?= =?UTF-8?q?chedule=2003:30,=20etiquetado=20y=20buenas=20pr=C3=A1cticas)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 59 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 01a3b2a..5a381cc 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,10 @@ [Watchtower](https://containrrr.dev/watchtower/) monitoriza imágenes y actualiza contenedores automáticamente cuando hay nuevas versiones. ## Características -- Actualiza servicios etiquetados -- Limpieza de imágenes antiguas (`WATCHTOWER_CLEANUP=true`) -- Programación vía cron (`WATCHTOWER_SCHEDULE`) +- Actualiza solo contenedores etiquetados (flag `--label-enable`) +- Limpieza de imágenes antiguas (flag `--cleanup`) +- Programación vía cron con flag `--schedule` +- Tiempo de gracia en parada (`--stop-timeout`) - Notificaciones (Shoutrrr: Telegram, Slack, Email, etc.) ## Despliegue @@ -17,23 +18,41 @@ docker compose up -d ``` ## Etiquetado de servicios -Para que un servicio se auto-actualice, añade: +Para que un servicio se auto-actualice, añade la label: ```yaml labels: - "com.centurylinklabs.watchtower.enable=true" ``` +Para excluir explícitamente: +```yaml +labels: + - "com.centurylinklabs.watchtower.enable=false" +``` -## Variables de entorno -Edita `.env` o el `docker-compose.yaml`: -- `WATCHTOWER_SCHEDULE`: cron (UTC) p.ej. `0 0 3 * * *` (diario 03:00) -- `WATCHTOWER_CLEANUP`: `true` para borrar imágenes antiguas -- `WATCHTOWER_NOTIFICATIONS` y `WATCHTOWER_NOTIFICATION_URL`: ver Shoutrrr +## Configuración (flags usados) +El `docker-compose.yaml` utiliza flags en lugar de variables de entorno para mayor claridad: +```yaml +command: + - --label-enable # Solo contenedores con label enable=true + - --cleanup # Elimina imágenes antiguas tras actualizar + - --schedule=0 30 3 * * * # Ejecuta cada día a las 03:30 (TZ configurado) + - --stop-timeout=30s # Tiempo de gracia al parar contenedores +``` +Si prefieres variables en vez de flags, puedes usar: +```yaml +environment: + - WATCHTOWER_LABEL_ENABLE=true + - WATCHTOWER_CLEANUP=true + - WATCHTOWER_SCHEDULE=0 30 3 * * * + - WATCHTOWER_TIMEOUT=30s +``` ## Buenas prácticas - Etiqueta solo servicios que quieras actualizar -- Usa horarios de baja actividad -- Revisa logs en actualizaciones críticas -- Mantén backups si actualizas servicios de estado +- Usa horarios de baja actividad (madrugada) +- Revisa logs tras cambios de versiones críticas +- Mantén backups si actualizas servicios con datos persistentes +- Excluye servicios que gestionas manualmente (`enable=false`) ## Troubleshooting ```bash @@ -41,23 +60,23 @@ docker logs watchtower --tail=200 ``` --- -Última actualización: Nov 2025 +Última actualización: Nov 2025 (compose con flags) ## Ejemplos de etiquetas ### Portainer (actualizable) -`yaml +```yaml labels: - "com.centurylinklabs.watchtower.enable=true" -` +``` ### NGINX Proxy Manager (excluir) -`yaml +```yaml labels: - "com.centurylinklabs.watchtower.enable=false" -` +``` -### Servicios críticos (incluir solo en ventanas) -- Usa WATCHTOWER_SCHEDULE para horarios de mantenimiento. -- Considera WATCHTOWER_INCLUDE_STOPPED=true si paras antes. +### Servicios críticos (actualizar manualmente) +- Programa ventanas con `--schedule` +- Opcional: parar primero y usar `WATCHTOWER_INCLUDE_STOPPED=true`