Automatiser la mise à jour des conteneurs Docker avec Watchtower sur Synology

NAS

Automatiser la mise à jour des conteneurs Docker avec Watchtower sur Synology

Gérer les mises à jour des conteneurs Docker manuellement devient rapidement une tâche chronophage lorsque vous multipliez les services conteneurisés. C’est là que la solution open source Watchtower entre en piste pour vous aider dans cette tâche.

Je profite de cet article pour rappeler que le projet Watchtower, pourtant populaire, a été abandonné le 17 décembre 2025. Le dépôt historique est désormais une archive publique sur GitHub. Mais rassurez-vous, si vous lisez cet article aujourd’hui, c’est parce qu’il existe un fork sérieux qui représente désormais la suite de ce projet apprécié : github.com/nicholas-fedor/watchtower/

Vous devez donc veiller à déployer l’image Docker associée à ce fork, et non l’image d’origine…

Si vous préférez regarder du côté d’une alternative, je vous recommande What’s Up Docker. Voici mon tutoriel à ce sujet :

Ce tutoriel vous guidera dans le déploiement de Watchtower sur un NAS Synology, mais vous pouvez utiliser le même fichier Docker Compose pour le déployer sur une autre plateforme. Par exemple, pour installer Watchtower sur Linux.

Qu’est-ce que Watchtower ?

Watchtower est un utilitaire léger qui surveille vos conteneurs Docker en cours d’exécution et vérifie automatiquement si l’image de base utilisée par chacun d’eux a été mise à jour sur le registre (Docker Hub, GHCR, etc.). Si une nouvelle version est détectée, Watchtower télécharge la nouvelle image, arrête le conteneur existant et le recrée avec les mêmes options de configuration (variables d’environnement, volumes, ports) que celles utilisées lors du déploiement initial.

Pourquoi ne pas utiliser l’interface Container Manager ?

L’interface de Synology peut vous alerter des mises à jour pour les images du Docker Hub, mais elle est aveugle vis-à-vis des mises à jour des autres dépôts. Surtout, le NAS ne va pas vous notifier par e-mail ou ailleurs, et encore moins effectuer la mise à jour à votre place. Il est donc intéressant de s’appuyer sur une solution open source comme Watchtower ou What’s Up Docker pour accomplir cette tâche.

Installation de Watchtower avec Docker Compose

Prérequis et préparation des dossiers

Avant de configurer Container Manager, nous devons préparer l’arborescence des fichiers sur le NAS Synology. Comme toujours, je vous recommande de maintenir une bonne organisation de vos projets Docker.

Ouvrez l’application File Station sur votre NAS. Accédez au dossier partagé (créé par défaut lors de l’installation de Container Manager). À l’intérieur de ce dossier, créez un dossier spécifique pour ce service : .

Si vous utilisez une machine Windows ou Linux avec Docker, créez également ce dossier (par exemple sous ).

Déploiement via Container Manager

Nous allons utiliser la fonction “Projet” de Container Manager, qui est l’interface graphique de Synology pour gérer les projets Docker.

  1. Ouvrez Container Manager sur votre interface DSM.
  2. Dans le menu de gauche, cliquez sur Projet.
  3. En haut à droite, cliquez sur le bouton Créer.

Dans la fenêtre qui s’ouvre, configurez les paramètres généraux comme suit :

  • Nom du projet :
  • Chemin :
  • Source :

Dans le champ de texte qui apparaît juste en dessous, nous allons définir la configuration du service Watchtower.

Configuration de base du Docker Compose de Watchtower

Pour configurer Watchtower, tout s’effectue directement dans le fichier Docker Compose par l’intermédiaire de variables d’environnement. Alors, autant vous dire que vous devez prendre au sérieux la préparation de cette configuration. Vous pourrez la modifier à tout moment et l’appliquer en redémarrant votre conteneur.

Cette configuration détermine votre politique de gestion des mises à jour : la mise à jour globale ou la mise à jour sélective de vos conteneurs.

Voici déjà la configuration minimale pour Watchtower :


Attention, utilisez bien l’image et non celle nommée , sinon vous pointez vers le projet archivé.

Mises à jour automatiques des conteneurs

Pour configurer la surveillance et la mise à jour automatique de l’ensemble des conteneurs, voici la configuration à adopter. Cela passe par l’ajout de 4 variables pour planifier l’action à 1h du matin tous les jours (), mais aussi nettoyer les images obsolètes () et traiter les conteneurs arrêtés () sans les redémarrer (). Le paramètre est important pour supprimer les anciennes images Docker après une mise à jour, cela évite d’encombrer l’espace de stockage du NAS avec des images orphelines.

Copiez et collez le code YAML suivant dans le champ prévu au sein de Container Manager (ou dans votre fichier ) :


Il existe aussi une variable nommée qui permet de spécifier la version de l’API Docker, en fonction du moteur utilisé. Par défaut, il y a un mode autonégociation qui fonctionne bien avec DSM. Dans le cas où vous rencontrez des problèmes, cela peut être une piste à explorer. Exemple :


Si vous lancez Watchtower avec cette configuration, il va entrer en action auprès de l’ensemble des conteneurs. Nous verrons par la suite comment créer des exclusions.

Si cette configuration vous convient, cliquez sur “Suivant“. Sur l’écran “Paramètres du portail Web“, vous n’avez rien à activer. Poursuivez jusqu’à la fin de l’assistant de Container Manager.

Sinon, patientez et lisez la suite de cet article. Si vous utilisez Docker sur un autre environnement, lancez le service via cette commande (en ayant un terminal positionné dans le dossier du projet).


Notifications par e-mail avec Watchtower

Watchtower peut envoyer des notifications par e-mail (via SMTP), ainsi que sur Slack, Microsoft Teams ou par l’intermédiaire de Gotify. Ci-dessous, une configuration typique d’un serveur SMTP pour envoyer des e-mails via Gmail (Google). C’est facilement adaptable pour d’autres fournisseurs de messagerie en adaptant les valeurs.


Si vous souhaitez des notifications distinctes par conteneur (et non une notification groupée) :


Sinon, par défaut, c’est un rapport global que vous recevez. Voici un exemple :

Note : Watchtower s’appuie sur la bibliothèque Shoutrrr pour envoyer les e-mails.

Surveillance uniquement

Si vous souhaitez que Watchtower surveille la publication de nouvelles images et vous envoie des notifications sans mettre à jour les conteneurs, c’est possible ! Il existe une variable prévue pour ce comportement. Elle doit être ajoutée à la section .


Si vous désirez gérer plus finement ce comportement, vous pouvez le gérer par conteneur via le système de Docker. Dans ce cas, ajoutez la variable dans le Docker Compose de Watchtower. Puis, ajoutez ce label sur les conteneurs où vous souhaitez effectuer la surveillance sans appliquer les mises à jour :


Exclure certains conteneurs

Vous pouvez configurer la variable qui agit comme un filtre en désactivant les mises à jour sur des noms de conteneurs spécifiques. L’exemple ci-dessous permet de désactiver la surveillance sur les conteneurs nommés , et .


Attention :

  • Séparez bien les noms par des virgules,
  • Précisez le nom exact des conteneurs. Sur un NAS Synology, consultez la section “Conteneurs” de Container Manager. Sinon, en ligne de commande, aidez-vous des commandes et .

Une autre approche consiste à ajouter l’étiquette (label) suivante dans le fichier Docker Compose du conteneur que vous souhaitez protéger du mécanisme de mise à jour automatique :


Effectuer la mise à jour immédiate d’un conteneur

Désormais, vous devez attendre la prochaine exécution de la routine Watchtower pour que vos conteneurs soient mis à jour. Si vous voulez tester dès maintenant, c’est possible via la ligne de commande. L’exemple ci-dessous permet de mettre à jour le conteneur .


Cette commande lance un conteneur Watchtower temporaire pour rechercher et appliquer immédiatement la dernière mise à jour disponible pour le conteneur ciblé. Une fois la mise à jour effectuée, le conteneur s’efface automatiquement de la machine locale.

Conclusion

Le déploiement de Watchtower sur votre NAS Synology (ou un hôte Docker sous Linux ou Windows) permet d’automatiser le cycle de vie de vos conteneurs. En utilisant le fork maintenu de Watchtower, vous pouvez continuer de profiter de ce projet qui a largement fait ses preuves ces dernières années.

Bien que l’automatisation de cette tâche soit pratique, elle peut s’avérer aussi “dangereuse” si une mise à jour majeure est déployée en production. Ci-dessous, le lien vers la documentation pour obtenir des précisions sur les options disponibles. Si vous avez besoin d’encore plus d’options, regardez du côté de What’s Up Docker.

SOURCE