Installation Watchtower avec Docker

Introduction

Watchtower est une application qui permet de surveiller les mises à jours des images de nos containeurs installés. Watchtower est capable d’installer automatiquement ses mises à jour ou de simplement faire une surveillance et de nous notifier en cas de mises à jours disponibles.

Pour cette installation j’utilise l’image officielle qui est présente ici : https://github.com/containrrr/watchtower

Remarque : J’ai créé au préalable un utilisateur omdocker (voir l’article création d ‘un utilisateur Docker pour le détail). J’ai créé aussi un répertoire qui contiendra tous mes installations docker. dans ce blog, j’utiliserais pour exemple le chemin /volume/docker.

Nous allons créer aussi le répertoire watchtower en ligne de commande sur le NAS (connexion en SSH) dans notre répertoire docker : /volume/docker. Cette étape est facultative, le containeur créera le répertoire automatiquement lors du déploiement si celui ci n’existe pas.

$ cd /volume/docker
$ mkdir watchtower

Le fichier de configuration

Si vous souhaitez sécuriser le lancement de ‘watchtower‘, je vous engage à parcourir l’article securiser docker

Il est importent de bien respecter l’indentation des fichiers de configurations : pas de tabulation. Attention aussi à la version du fichier, il y a des légères évolutions de syntaxe d’une version à l’autre.

Le fichier yml en détails. Il faut remplacer pour votre configuration :

  • port 8881 : numéro de port pour accéder à l’interface avec votre navigateur.
  • PUID et PGID : celui de votre utilisateur Docker (omdocker pour ce blog),
  • TZ : Votre zone de temps,
  • WATCHTOWER_NOTIFICATIONS : Il convient de personnaliser votre notification, si vous souhaitez l’utiliser,
  • WATCHTOWER_LABEL_ENABLE : true. Cela indique que seul les containeurs qui contiendront un ‘label’ spécifique seront surveillés (voir remarque tout en bas de l’article),
  • WATCHTOWER_LABEL_MONITOR-ONLY= true. Cela indique que les containeurs seront seulement surveillés (pas d’installation automatique de mises à jours).

Remarque : Les notifications sont envoyés ici par email. Il est possible d’envoyer des notifications vers ‘Gotify‘, ‘Slack‘, ‘MSteams’ et ‘Shoutrrr‘ . Je vous renvoi vers la documentation pour plus de détails ! https://containrrr.dev/watchtower/notifications/

version: "2.3"
services:
  watchtower:
    container_name: watchtower
    image: containrrr/watchtower
    restart: unless-stopped
    environment:
      - PUID=1003
      - PGID=100
      - TZ=Europe/Paris
      - WATCHTOWER_SCHEDULE= 0 0 6 * * *
      - WATCHTOWER_LABEL_ENABLE=true
      - WATCHTOWER_LABEL_MONITOR-ONLY=true
      - WATCHTOWER_CLEANUP=true
      - WATCHTOWER_REMOVE_VOLUMES=true
      - WATCHTOWER_NOTIFICATIONS_LEVEL=debug
      - WATCHTOWER_NOTIFICATIONS=email
      - WATCHTOWER_NOTIFICATION_EMAIL_FROM=votreemail@gmail.com
      - WATCHTOWER_NOTIFICATION_EMAIL_TO=votreemail@gmail.com
      - WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com
      - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=465
      - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=utilisateur
      - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=passwd
      - WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Vous copiez le contenu de ce fichier dans votre interface de gestion Portainer en allant dans ‘Stacks‘ et ‘Add stack‘.

Pile Watchtower
La pile ‘watchtower

Donnez un nom à votre pile, par exemple ‘watchtower‘, puis déployer cotre containeur en cliquant en bas sur « Deploy the stack‘.

Après une phase de téléchargement de l’image, puis d’installation de l’application, vous devriez arriver sur cet écran si tout s’est bien passé :

Containeur Watchtower
Le container ‘watchtower‘ est installé et est en fonctionnement.

Vous devriez recevoir une notification au lancement du containeur :

Notification email
Email de notification

Remarque : Il sera nécessaire de rajouter le bloc suivant dans chaque containeur que nous souhaitons surveiller :
labels:
  - com.centurylinklabs.watchtower.monitor-only=true

Mise à jour 13/10/2022

J’ai finis par désactiver Watchtower sur mon NAS. Il fonctionne très bien mais en terme de sécurité, il laisse à désirer. Le fait de monter /var/run/docker.socket peut donner l’accès root à tous le système. J’utilise comme alternative les flux rss (voir installation freshrss) des projets GitHub concernés de tous mes containeurs. Je relance mes piles Docker à chaque nouvelles images Docker mises en ligne sur GitHub.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *