J’utilise énormément Docker ou Podman pour déployer rapidement mes stacks (sur ce serveur par exemple) mais également pour exécuter des applications sans me soucier de l’environnement ou des dépendances (sur mon NAS OpenMediaVault par exemple). Du coup je me retrouve à devoir maintenir à jour à la fois le système (dnf upgrade
/ apt upgrade
) mais également mes containers Docker. Du coup je recherchais une solution me permettant de maintenir à jour mes containers en fonction des mises à jour proposées sur les dépôts officiels. J’ai trouvé la solution en Watchtower qui en plus est disponible en container Docker (logique vous me direz :-)).
Watchtower me permet de :
- Être informé de la mise à disposition de mise à jour.
- Mettre à jour mes containers automatiquement (attention à la prod’ bien entendu !).
- Supprimer les images inutiles (les anciennes versions).
- Recevoir des notifications Slack pour me prévenir de tout ça.
Et le tout est super simple car il suffit de rajouter Watchtower à votre docker-compose :
watchtower:
container_name: watchtower
hostname: watchtower
image: containrrr/watchtower:latest
restart: always
environment:
TZ: "Europe/Paris"
WATCHTOWER_CLEANUP: "true"
WATCHTOWER_NOTIFICATIONS: "slack"
WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL: "https://hooks.slack.com/services/XXX/YYY/ZZZ"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Ou directement depuis Portainer (solution disponible depuis OpenMediaVault) :
Il y a plein de possibilités de configuration, personnellement je mets à jour mes containers automatiquement, avec suppression des anciennes images (WATCHTOWER_CLEANUP
) et je balance sur mon Canal Slack de notifications pour en avoir une trace (WATCHTOWER_NOTIFICATIONS
).