By Walid ETTAYEB

Watchtower est sur ma liste depuis longtemps. Je l'ai évité car on m'avait dit au départ qu'il mettrait automatiquement à jour tous mes conteneurs Docker. Je ne suis pas du genre à faire des mises à jour automatiques. Dans 99 % des cas, je préfère me renseigner, comprendre les changements et savoir si cela va casser quelque chose avant de mettre à jour.  Sachant cela, je n'ai que rarement eu des changements cassants dans les conteneurs, mais cela peut arriver.

Si vous êtes quelqu'un qui n'a pas peur de faire des changements, alors vous devriez envisager de laisser Watchtower faire son travail à grande vitesse. Cependant, si vous êtes comme moi, vous serez heureux d'apprendre que vous pouvez configurer Watchtower pour qu'il vous avertisse simplement lorsqu'il y a de nouvelles versions de vos images docker disponibles, et vous pouvez alors choisir de mettre à jour, ou de rester où vous en êtes.

Configuration de la pré-installation

Documentation de Watchtower :

Notifications - Watchtower

Avant d'exécuter Watchtower, vous devez prendre quelques décisions:

  1. Voulez-vous que Watchtower mette à jour vos conteneurs automatiquement, ou voulez-vous être informé uniquement des mises à jour disponibles, ou voulez-vous que Watchtower ignore complètement certains conteneurs ?
  2. Voulez-vous régler la fréquence d'execution de Watchtower ?
  3. Comment voulez-vous être notifié ?

Pour notre configuration d'aujourd'hui, nous allons aborder les trois options de mise à jour:  automatique, notification uniquement et d'ignorer certain conteneurs.  Nous allons configurer les notifications par e-mail, et nous définirons un calendrier en utilisant la syntaxe cron à 6 positions. Voilà toutes les choses que vous devez préparer avant d'exécuter votre conteneur Watchtower, sinon tous vos conteneurs seront mis à jour automatiquement et presque immédiatement.

Options de mise à jour

Si vous souhaitez mettre à jour vos conteneurs automatiquement, vous n'avez besoin que des informations SMTP de l'e-mail (ou des informations de configuration de la notification pour la méthode de notification souhaitée) et, si vous le souhaitez, d'un indicateur de planification "cron".

Si, cependant, vous voulez être notifié des mises à jour disponibles, mais ne voulez pas que le conteneur soit mis à jour automatiquement ; ou vous voulez simplement que watchtower ignore complètement certains conteneurs, vous devez d'abord recréer vos conteneurs avec une nouvelle étiquette.

Notifier uniquement

Label = com.centurylinklabs.watchtower.monitor-only

Valeur=  true

Ignore Container

Label = com.centurylinklabs.watchtower.enable

Valeur = false.

Il est EXTRÊMEMENT IMPORTANT que vous configuriez les étiquettes avant de lancer Watchtower si vous ne voulez pas qu'il mette à jour tous vos conteneurs immédiatement.

Configuration SMTP

Ensuite, afin de recevoir des notifications (que ce soit en Notify Only, ou pour les conteneurs qui ont été mis à jour), nous allons configurer les informations de notre serveur SMTP.  Cette configuration, ainsi que la planification, se fait dans la commande Docker Run pour Watchtower, mais il est utile de rassembler les informations avant d'entrer la commande.

  -e WATCHTOWER_NOTIFICATIONS=email \
  -e [email protected] \
  -e [email protected] \
  -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.ettayeb.fr \
  -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 \
  -e [email protected] \
  -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=app_password \
  -e WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2 \
Bien que j'ajoute cette information pour des raisons de commodité, il est toujours utile de consulter le site officiel de la Watchtower pour obtenir des informations actualisées sur son utilisation.
FROM - votre adresse e-mail
TO - votre adresse e-mail
SERVER - votre serveur SMTP .
PORT - dépend de votre serveur SMTP / hôte.
USER - généralement votre adresse email complète, mais cela peut être la partie avant le symbole @, cela dépend de votre serveur SMTP / hôte.
PASSWORD - le mot de passe de votre adresse électronique

Laissez les valeurs NOTIFICATIONS et DELAY telles qu'elles sont.

Cron pour programmer les vérifications

Watchtower utilise une syntaxe cron à 6 positions pour programmer les vérifications.

 *	*	*	*	*	*
 s	m	h	D	W	M
 s = seconds
 m = minutes
 h = hours
 D = Days
 W = Weeks
 M = Months

Donc, nous pouvons définir notre programme de plusieurs façons.

Disons que nous voulons le faire fonctionner chaque heure de chaque jour :

0	0	*	*	*	*

Cette opération aura lieu toutes les heures.

J'utilise le mien tous les jours avec

0	0	0	*/1	*	*

Si tu veux l'exécuter toutes les semaines, tu peux le changer en :

0	0	0	*	*/1	*

Et ainsi de suite.

Installation de Watchtower

Maintenant que nous avons rassemblé toutes nos informations, nous pouvons installer Watchtower et le faire fonctionner en toute confiance.

On utilisera cette commande :

docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e WATCHTOWER_NOTIFICATIONS=email \
  -e [email protected] \
  -e [email protected] \
  -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.ettayeb.fr \
  -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 \
  -e [email protected] \
  -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=app_password \
  -e WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2 \
  -e WATCHTOWER_SCHEDULE="0 0 0 */1 * *"
  containrrr/watchtower

Vous devriez voir watchtower démarrer, et vous pouvez vérifier qu'il fonctionne dans Portainer, ou via la commande docker ps.

Vous pouvez également vérifier les journaux dans Portainer, ou via la commande "docker logs watchtower" .

Il devrait également envoyer un courriel immédiat (ou dans les quelques minutes qui suivent).  Une fois que vous l'aurez reçu, vous saurez que les choses sont probablement configurées correctement.

Il suffit de se détendre et d'attendre les mises à jour et les notifications.

Walid ETTAYEB • 36 Articles

Passionné par l'informatique depuis mon plus jeune âge, je transforme ma passion en expertise.

View Articles