Watchtower
I container ricoprono sempre di più un ruolo importante nella nostra era tecnologica ed è quindi cruciale tenerli sempre aggiornati.
Watchtower è un’applicazione che monitora i container (Docker) in esecuzione e le immagini di origine. Quando watchtower rileva che è presente una nuova versione dell’immagine Docker, riavvia automaticamente il container utilizzandola.
Strano ma vero anche watchtower è un container ed è quindi possibile avviarlo con un semplice comando:
# docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower
Sul sito ufficiale è disponibile tutta la documentazione. Le configurazioni possibili sono tante e io ho utilizzato l’integrazione con Slack.
# docker run -d \
--name watchtower \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/localtime:/etc/localtime:ro \
-e WATCHTOWER_MONITOR_ONLY=true \
-e WATCHTOWER_NOTIFICATIONS=slack \
-e WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL="https://hooks.slack.com/services/XXXXXXXXXXXXXXXXXXXXXXXXX/XXXXXXXXXXXXXXX" \
-e WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER=vps01 \
containrrr/watchtower --schedule "0 0 4 * * *"
In questo caso watchtower verrà eseguito tutti i giorni alle 4:00 e si limiterà ad inviare una notifica in presenza di una nuova immagine.
Nel caso in cui volessimo lasciare l’aggioramento a watchtower basterà modificare la variabile _WATCHTOWER_MONITORONLY:
# docker run -d \
--name watchtower \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/localtime:/etc/localtime:ro \
-e WATCHTOWER_MONITOR_ONLY=false \
-e WATCHTOWER_NOTIFICATIONS=slack \
-e WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL="https://hooks.slack.com/services/XXXXXXXXXXXXXXXXXXXXXXXXX/XXXXXXXXXXXXXXX" \
-e WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER=vps01 \
containrrr/watchtower --schedule "0 0 4 * * *"
Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.
Risorse: