Diun (Docker Image Update Notifier) es una herramienta que vigila las imágenes Docker que estás usando y te avisa cuando hay nuevas versiones disponibles.
Diun no actualiza contenedores, solo avisa de que hay nuevas versiones. Luego tú decides actualizar (a diferencia de herramientas como Watchtower).
Ejemplo de Docker Compose:
name: diun services: diun: image: crazymax/diun:latest command: serve volumes: - "./data:/data" - "/var/run/docker.sock:/var/run/docker.sock" environment: - "TZ=Europe/Madrid" - "DIUN_WATCH_WORKERS=20" - "DIUN_WATCH_SCHEDULE=0 */6 * * *" - "DIUN_WATCH_JITTER=30s" - "DIUN_PROVIDERS_DOCKER=true" - "DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT=true" labels: - "diun.enable=true" restart: always
Variables de entorno:
DIUN_WATCH_SCHEDULE: indica la frecuencia de comprobación. Sigue el formato de cron. En el ejemplo de arriba, sería cada 6 horas.DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT. Hace que vigile automáticamente todos los contenedores. Si se pone a false, habría que marcar contenedores con labels.Ejemplo en el fichero Docker Compose:
environment: # Telegram notifications DIUN_NOTIF_TELEGRAM_TOKEN: "123456789:AAGVEr3FF12345aoGl_y3AAAAAqm8F3qxM" DIUN_NOTIF_TELEGRAM_CHATIDS: "1234567" DIUN_NOTIF_TELEGRAM_TEMPLATEBODY: | 🚀 *Actualización imagen Docker* 📦 *Imagen:* `{{ .Entry.Image }}` 📦 *Contenedor:* `{{ .Meta.ID }}` (ID) - `{{ .Meta.Name }}` (Nombre) 🔔 *Estado:* {{ .Entry.Status }} {{ if .Entry.Image.HubLink }} 🔗 {{ .Entry.Image.HubLink }} {{ end }}
Entramos en el contenedor:
docker compose exec -it diun sh
Ejecutamos:
diun notif test
Usará el método de notificación que hayamos configurado y enviará una notificación a través de él.