Watchtower als Monitoring-Tool - nur benachrichtigen statt automatisch updaten
Watchtower als Monitoring-Tool - nur benachrichtigen statt automatisch updaten
Watchtower kann prüfen, ob neue Image-Versionen verfügbar sind, und eine Benachrichtigung senden — ohne einen einzigen Container anzufassen.
Das Problem mit Auto-Updates in der Produktion
Automatische Container-Updates klingen praktisch, sind in Produktionsumgebungen aber riskant: Ein neues Image kann Breaking Changes enthalten, die den Dienst unbrauchbar machen. Wer benachrichtigt werden möchte, aber selbst entscheiden will, wann und ob er updatet, nutzt den Monitor-Modus.
Monitor-only Modus
services:
watchtower:
image: containrrr/watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
WATCHTOWER_MONITOR_ONLY: "true"
WATCHTOWER_SCHEDULE: "0 0 4 * * *" # täglich um 4 Uhr
WATCHTOWER_NOTIFICATIONS: gotify
WATCHTOWER_NOTIFICATION_GOTIFY_URL: http://gotify:80
WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN: mytoken
Mit WATCHTOWER_MONITOR_ONLY=true prüft Watchtower, welche Container aktualisiert werden könnten, und sendet eine Benachrichtigung — führt das Update aber nicht durch.
Per Container steuern
Das globale Monitor-Flag lässt sich pro Container überschreiben:
services:
# Dieser Container wird nie automatisch aktualisiert
database:
image: postgres:15
labels:
- "com.centurylinklabs.watchtower.monitor-only=true"
# Dieser Container darf auto-updaten (wenn Watchtower global im Update-Modus ist)
blog:
image: ghost:latest
labels:
- "com.centurylinklabs.watchtower.enable=true"
Benachrichtigungskanäle
Watchtower unterstützt mehrere Kanäle über die Shoutrrr-Bibliothek:
environment:
# E-Mail
WATCHTOWER_NOTIFICATIONS: email
WATCHTOWER_NOTIFICATION_EMAIL_FROM: watchtower@example.com
WATCHTOWER_NOTIFICATION_EMAIL_TO: admin@example.com
WATCHTOWER_NOTIFICATION_EMAIL_SERVER: smtp.example.com
# Slack
WATCHTOWER_NOTIFICATIONS: slack
WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL: https://hooks.slack.com/...
# Gotify (Self-hosted)
WATCHTOWER_NOTIFICATIONS: gotify
WATCHTOWER_NOTIFICATION_GOTIFY_URL: http://gotify:80
WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN: mytoken
Zeitplan konfigurieren
Das WATCHTOWER_SCHEDULE-Format ist ein 6-stelliger Cron-Ausdruck:
0 0 4 * * * → täglich um 04:00 Uhr
0 0 */6 * * * → alle 6 Stunden
0 30 8 * * 1 → montags um 08:30 Uhr
Alternativ als Intervall:
WATCHTOWER_POLL_INTERVAL: "86400" # Sekunden (= 24 Stunden)
Einmalig prüfen (ohne dauerlaufenden Container)
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--monitor-only \
--run-once
Führt eine einmalige Prüfung durch und gibt die Ergebnisse auf stdout aus — nützlich für Skripte.
Zusammenfassung
Watchtower im Monitor-Modus ist ein sicherer Weg, immer über verfügbare Updates informiert zu sein, ohne das Risiko eines unkontrollierten automatischen Updates. Besonders für Produktionssysteme und Datenbank-Container ist der Monitor-Modus die richtige Wahl — Updates manuell einspielen, wenn der Zeitpunkt passt.