Présentation
Watch Tower permet de mettre à jour les images docker utilisées de façon automatique. Il va permettre de télécharger la nouvelle image, supprimer proprement le conteneur l'utilisant et le relancer avec les mêmes options. Par défaut, cela utilise le Docker Hub, mais il est possible de paramétrer un registry privé en spécifiant des credentials.
La documentation complète peut être accessible ici : https://containrrr.dev/watchtower/
Installation
L'installation est très simple car Watch Tower va tourner lui-même en conteneur.
Je vais utiliser un fichier docker-compose.yml
pour exécuter l'application :
version: '3.8'
services:
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --schedule "0 0 4 * * *" --cleanup
- docker.sock : Indispensable pour avoir accès au socket docker de l'hôte dans le conteneur afin de surveiller tous les autres conteneurs.
- schedule : Permet de préciser quand vérifier les mises à jour sous un format à 6 colonnes (contrairement à crontab). La 1ère colonne correspond aux secondes. Ici, 4h tous les jours.
- cleanup : Permet de supprimer les anciennes images docker.
Par défaut toutes les images de tous les conteneurs sont surveillées. Il est possible d'affiner ce comportement.
D'autres options sont disponibles (Se référer à la documentation précisée en introduction).
Exécution
Lancer simplement le docker-compose.yml
:
docker-compose up -d