Watchtower
Outil qui surveille automatiquement vos conteneurs Docker et, si nécessaire, peut les mettre à jour pour garantir qu'ils disposent toujours de la dernière version. Il facilite la gestion de vos applications en s'assurant qu'elles restent à jour sans intervention manuelle.
Précautions avant la mise à jour automatique
Je vous recommande vivement de ne pas activer la mise à jour automatique. Il est important de relire les notes de version avant de procéder à une mise à jour, afin de suivre les changements et d’éviter tout problème ou incompatibilité qui pourrait casser votre environnement.
Fonctionnement de Watchtower
- Surveille automatiquement vos conteneurs Docker.
- Si une mise à jour est disponible, il peut, selon la configuration, la télécharger et l’appliquer.
- Peut envoyer des notifications pour vous tenir informé des actions effectuées ou en cours.
Note : Il est conseillé de configurer Watchtower en mode surveillance ONLY (WATCHTOWER_MONITOR_ONLY: "true") si vous souhaitez d’abord recevoir des notifications sans qu’il procède automatiquement à la mise à jour.
Configuration de Webhook pour notifications
Pour recevoir des notifications dans votre serveur Discord lorsque Watchtower effectue une action (mise à jour, erreur, etc.), vous pouvez utiliser la fonction de webhook de Discord.
Comment créer un webhook Discord ?
- Ouvrez Discord et allez dans le serveur où vous souhaitez recevoir les notifications.
- Sélectionnez le canal où vous souhaitez envoyer les messages (ex : #watchtower).
- Cliquez sur la petite roue dentée à côté du nom du canal pour ouvrir ses paramètres.
- Dans le menu de gauche, cliquez sur Intégrations puis sur Webhooks.
- Cliquez sur Créer un webhook.
- Personnalisez le nom du webhook, choisissez une image si vous le souhaitez, puis cliquez sur Copier le webhook URL.
- Conservez cette URL, vous en aurez besoin pour la configuration.
Intégrer le webhook dans votre configuration Watchtower
- Pour recevoir des notifications dans votre serveur Discord, vous devez utiliser la variable d’environnement
WATCHTOWER_NOTIFICATION_URLdans votre fichier de configuration Docker compose ou dans vos variables d’environnement. - Remplacez la valeur
"discord://token@id"par les valeurs de l'URL votre webhook Discord :https://discord.com/api/webhooks/ID/TOKEN - Exemple de configuration :
environment:
WATCHTOWER_NOTIFICATION_URL: "discord://M8q5hBYCHqwFTD3R838KIbb-CIWhGNTPLtHM1wd9S3vlqEIuZGmlNT78Pnur04p46aVq@1416880135902335086"
Exemple modifié :
services:
watchtower: # Permet de mettre à jour automatiquement
image: containrrr/watchtower:latest
container_name: watchtower # Nom du conteneur
restart: unless-stopped # Redémarre automatiquement sauf si arrêté manuellement
environment:
TZ: Europe/Paris # Fuseau horaire
WATCHTOWER_NOTIFICATIONS_HOSTNAME: "nom" # Nom d'hôte
# WATCHTOWER_INCLUDE: "nginx-proxy portainer" # Liste des conteneurs à surveiller (séparés par des espaces)
WATCHTOWER_SCHEDULE: "0 8 * * 0" # Vérification/Notification dimanches à 8 heures
WATCHTOWER_MONITOR_ONLY: "true" # Mode surveillance uniquement : détecte les mises à jour mais ne les applique pas
WATCHTOWER_CLEANUP: "true" # Supprime automatiquement les anciennes images après mise à jour
WATCHTOWER_INCLUDE_RESTARTING: "false" # Inclut les conteneurs en cours de redémarrage dans la surveillance
# URL de notification Discord (webhook)
WATCHTOWER_NOTIFICATION_URL: "discord://token@id"
WATCHTOWER_NOTIFICATION_TEMPLATE: |
{{range .}}{{.Time.Format "01-02-2006 15:04:05"}} ({{.Level}}): {{.Message}}{{println}}{{end}}
WATCHTOWER_NOTIFICATIONS: shoutrrr
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Remarques importantes :
- Si vous utilisez un autre service de notifications, adaptez l’URL en conséquence en suivant la documentation officielle