Aller au contenu

[TUTO] Mise à jour automatique des images et conteneurs Docker


.Shad.

Messages recommandés

@.Shad.

Bonjour,

SUPER çà marche 😄, watchtower installé (j'ai juste viré dans "volumes:" la ligne " :

- ./config.json:/root/.docker/config.json

qui était inutile vu que je n'utilise pas de fichier config.json. On verra à l'usage si les notifications se font bien par Mail.

Merci encore pour ton aimable support.

Cordialement

oracle7😉

 

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

@.Shad.

Bonjour,

J'ai donc installé sur tes conseils le conteneur "watchtower" mais après plusieurs jours de fonctionnement, je n'ai pas l'impression qu'il mette à jour les autres conteneurs/images comme prévu par essence.

Par exemple, pour influxdb je suis en v1.8.2 alors que sur le site dockerhub la latest est la v1.8.3. Idem pour grafana j'ai la v7.1.5 et la latest est la v7.2.1.

Du coup, d'après toi est normal O/N ? ou bien c'est parce que les évolutions de versions ne sont pas assez "importantes" vu de watchtower ?

Je pensais qu'il mettait à jour à chaque publication de "nouvelle" latest, non ?

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

Il met à jour suivant ceci :

Le 28/07/2019 à 15:31, .Shad. a dit :

I/ Fréquence de mise à jour

- INTERVAL [entier] : Définit un intervalle de mise à jour en secondes, avec un minimum de 30 secondes si aucun autre paramètre n'influe sur la périodicité des vérifications n'est défini.
Ex : INTERVAL=300
- CRON [expression cron] : Le plus intéressant pour des particuliers je trouve, cela permet de définir très précisément un intervalle non régulier : tous les x jours, tous les mardi, 3 fois par jour le mercredi et le vendredi, à telle heure, x fois par mois, etc... Il existe un site très pratique, crontab.guru, qui permet de comprendre rapidement comment cela fonctionne, et d'avoir une traduction littérale de l'expression cron.

Ex : CRON="0 5 * * *"

Qu'as-tu utilisé comme méthode ?

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

Normalement ça devrait marcher, moi j'ai :

- WATCHTOWER_SCHEDULE=0 0 5 * * 6

et ça fonctionne correctement (tous les dimanche matin à 5h).

Est-ce que tu as un message d'erreur quelconque ? Est-ce que la mise à jour n'est pas apparue entre le dernier scan et maintenant ?

Tu peux ajouter la variable d'environnement :

- WATCHTOWER_DEBUG=true

pour essayer d'identifier l'origine du problème.

@Lelolo : Yep, très pratique ! 😉 

Lien vers le commentaire
Partager sur d’autres sites

@.Shad.

Bonjour,

Il y a 2 heures, .Shad. a dit :

Tu peux ajouter la variable d'environnement :



- WATCHTOWER_DEBUG=true

pour essayer d'identifier l'origine du problème.

J'avais déjà cette variable de positionnée et voilà ci-dessous le log :

Citation

root@MonNAS:

6:/volume1/docker/watchtower# docker logs -f watchtower
time="2020-10-12T13:56:12+02:00" level=debug
time="2020-10-12T13:56:12+02:00" level=debug msg="Sleeping for a second to ensure the docker api client has been properly initialized."
time="2020-10-12T13:56:13+02:00" level=debug msg="Retrieving running containers"
time="2020-10-12T13:56:13+02:00" level=debug msg="There are no additional watchtower containers"
time="2020-10-12T13:56:13+02:00" level=info msg="Starting Watchtower and scheduling first run: 2020-10-13 01:30:00 +0200 CEST"
Failed to send notification email:  unencrypted connection
time="2020-10-13T01:30:00+02:00" level=debug msg="Checking containers for updated images"
time="2020-10-13T01:30:00+02:00" level=debug msg="Retrieving running containers"
time="2020-10-13T01:30:00+02:00" level=debug msg="Pulling containrrr/watchtower:latest for /watchtower"
time="2020-10-13T01:30:00+02:00" level=debug msg="No credentials for containrrr in /config.json"
time="2020-10-13T01:30:00+02:00" level=debug msg="Got image name: containrrr/watchtower:latest"
time="2020-10-13T01:30:01+02:00" level=debug msg="No new images found for /watchtower"
time="2020-10-13T01:30:01+02:00" level=debug msg="Pulling linuxserver/calibre-web:latest for /calibre-web"
time="2020-10-13T01:30:01+02:00" level=debug msg="No credentials for linuxserver in /config.json"
time="2020-10-13T01:30:01+02:00" level=debug msg="Got image name: linuxserver/calibre-web:latest"
time="2020-10-13T01:30:28+02:00" level=info msg="Found new linuxserver/calibre-web:latest image (sha256:1d2a991817ffa6e87109d62ffea7b73dfe3598d6acf2c2e7ba2c65941f755968)"
time="2020-10-13T01:30:28+02:00" level=debug msg="Pulling linuxserver/calibre:latest for /calibre"
time="2020-10-13T01:30:28+02:00" level=debug msg="No credentials for linuxserver in /config.json"
time="2020-10-13T01:30:28+02:00" level=debug msg="Got image name: linuxserver/calibre:latest"
time="2020-10-13T01:30:29+02:00" level=debug msg="No new images found for /calibre"
time="2020-10-13T01:30:29+02:00" level=debug msg="This is the watchtower container /watchtower"
time="2020-10-13T01:30:29+02:00" level=info msg="Stopping /calibre-web (c4703c9d0b97d81233ddda782f777bb338c7f6c7c35e620577d722b8048299ab) with SIGTERM"
time="2020-10-13T01:30:35+02:00" level=debug msg="Removing container c4703c9d0b97d81233ddda782f777bb338c7f6c7c35e620577d722b8048299ab"
time="2020-10-13T01:30:39+02:00" level=info msg="Creating /calibre-web"
time="2020-10-13T01:30:40+02:00" level=debug msg="Starting container /calibre-web (a9a7709c89f7d9d704a1d191bd8c2b6eea0dc0abfb57bd93dd7614e165d7ae82)"
time="2020-10-13T01:30:42+02:00" level=info msg="Removing image sha256:febbfbaa21110d4e7cd7ea04a45f42a41bafe61c46f49ab58fcd2768eb77c219"
time="2020-10-13T01:30:43+02:00" level=debug msg="Scheduled next run: 2020-10-14 01:30:00 +0200 CEST"
Failed to send notification email:  unencrypted connection

Je constate que cela semble avoir marché aujourd'hui pour les images watchtower, calibre-web et calibre mais pas pour influxdb ni grafana qui ne sont même pas cités alors que dans mon fichier docker-compose.yml du monitoring j'ai bien la même instruction pour chaque conteneur à savoir :

Citation

        labels:
            - "com.centurylinklabs.watchtower.enable=true"

Par ailleurs, je ne comprends pas les erreurs surlignées car je n'ai pas de ligne dans mon docker-compose.yml :

volumes:
    - ./config.json:/root/.docker/config.json

Pour le problème de notifications emails j'ai juste renseigné avec mes infos personnelles les champ de notification que tu avais fourni plus haut dans une de tes réponses en page 1. Il manquerai quelque chose à ce niveau ?

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @.Shad.,

J'ai installé ouroboros et ai programmé une mise à jour tous les mardis à 15h30. Je pense que cela a fonctionné car l'aspect de grafana a changé et un plugin a arrêter de déclencher une erreur.

Par contre impossible de trouver mention de la version. Je la voyais pourtant clairement avant dans portainer (6.7.2 la précédente).

Existe-t-il un paramétrage permettant l'envoi d'un message qui préciserait les MàJ effectuées?

Edit LOG_LEVEL  info .....peut-être. Je vais lire la doc😄

 

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

@Jeff777

Tu peux la voir ici dans Grafana :

 grafana-version.png

Pour les notifications, Ouroboros se base sur : https://github.com/caronc/apprise (source : https://github.com/pyouroboros/ouroboros/wiki/Notifications)

A la limite je te conseille d'expérimenter quelques temps puis de passer sur https://hub.docker.com/r/containrrr/watchtower, je mettrai peut-être mon tutoriel à jour pour Watchtower au lieu d'Ouroboros.
Mais je sais que @EVOTk en a déjà fait un sur un autre forum, voir si je ne mettrais pas directement le lien. 😉

@oracle7

Je pense que tu essaies d'utiliser un port SSL au lieu de TLS, or SSL n'est pas pris en charge par Watchtower.
J'utilise personnellement le port 587 du serveur SMTP d'OVH.
Concernant le message des credentials, ce ne sont pas des erreurs mais juste des informations. Pour moi c'est juste qu'il n'a trouvé aucun dépôt privé hébergeant cette image dans le fichier config.json, et donc il passe sur le hub Docker après. Tu peux toujours demander sur le github de Watchtower.

Lien vers le commentaire
Partager sur d’autres sites

@.Shad.

J'avais déjà commencé à mettre en place Watchtower lorsque j'ai vu ton message.

Je crois que cela a fonctionné sauf que comme j'avais mis tout à jour avec ouroboros il ne s'est rien passé 🙂  J'ai cependant un pb sur l'envoi du mail, je regarderai demain.

Le log de watchtower me donne ceci (c'est normal le "no credentials in config.json"??) :

 

time="2020-10-13T21:53:20+02:00" level=info msg="Starting Watchtower and scheduling first run: 2020-10-13 22:00:00 +0200 CEST"

Failed to send notification email: EOF

time="2020-10-13T22:00:00+02:00" level=debug msg="Checking containers for updated images"

time="2020-10-13T22:00:00+02:00" level=debug msg="Retrieving running containers"

time="2020-10-13T22:00:00+02:00" level=debug msg="Pulling containrrr/watchtower:latest for /watchtower"

time="2020-10-13T22:00:00+02:00" level=debug msg="No credentials for containrrr in /config.json"

time="2020-10-13T22:00:00+02:00" level=debug msg="Got image name: containrrr/watchtower:latest"

time="2020-10-13T22:00:06+02:00" level=debug msg="No new images found for /watchtower"

time="2020-10-13T22:00:06+02:00" level=debug msg="Pulling telegraf:latest for /telegraf"

time="2020-10-13T22:00:06+02:00" level=debug msg="No credentials for telegraf:latest in /config.json"

time="2020-10-13T22:00:06+02:00" level=debug msg="Got image name: telegraf:latest"

time="2020-10-13T22:00:08+02:00" level=debug msg="No new images found for /telegraf"

time="2020-10-13T22:00:08+02:00" level=debug msg="Pulling portainer/portainer:latest for /portainer"

time="2020-10-13T22:00:08+02:00" level=debug msg="No credentials for portainer in /config.json"

time="2020-10-13T22:00:08+02:00" level=debug msg="Got image name: portainer/portainer:latest"

time="2020-10-13T22:00:11+02:00" level=debug msg="No new images found for /portainer"

time="2020-10-13T22:00:11+02:00" level=debug msg="Pulling influxdb:latest for /influxdb"

time="2020-10-13T22:00:11+02:00" level=debug msg="No credentials for influxdb:latest in /config.json"

time="2020-10-13T22:00:11+02:00" level=debug msg="Got image name: influxdb:latest"

time="2020-10-13T22:00:15+02:00" level=debug msg="No new images found for /influxdb"

time="2020-10-13T22:00:15+02:00" level=debug msg="Pulling grafana/grafana:latest for /grafana"

time="2020-10-13T22:00:15+02:00" level=debug msg="No credentials for grafana in /config.json"

time="2020-10-13T22:00:15+02:00" level=debug msg="Got image name: grafana/grafana:latest"

time="2020-10-13T22:00:17+02:00" level=debug msg="No new images found for /grafana"

time="2020-10-13T22:00:17+02:00" level=debug msg="This is the watchtower container /watchtower"

time="2020-10-13T22:00:17+02:00" level=debug msg="Scheduled next run: 2020-10-20 22:00:00 +0200 CEST"

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

Bonjour !

Il y a une application qui n'a pas été mise à jour c'est portainer. Je suis en version 1.24.1 et la version 2.0 pointe son nez :

https://github.com/portainer/portainer/releases/tag/2.0.0

 le nom de l'image a volontairement changé (portainer-CE) de sorte que watchtower ne fait pas la mise à jour. Je ne semble pas concerné par les mises en garde. Ai-je intérêt à le faire manuellement ?

Je suppose que la version 1.24.1 ne sera plus maintenue. 

Edit : il en est question à la fin de ce post . Je vais rester sur 1.24.1 et lire attentivement le post 😉

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

@.Shad.

Bonjour,

Sans surprise, l'usage du port 465 ne fonctionne pas malgré que la connexion soit encryptée, c'est le serveur d'autorisation d'orange qui refuse alors la connexion :

Citation

time="2020-10-13T17:14:54+02:00" level=debug msg="There are no additional watchtower containers"
time="2020-10-13T17:14:54+02:00" level=info msg="Starting Watchtower and scheduling first run: 2020-10-14 01:30:00 +0200 CEST"
Failed to send notification email:  read tcp 172.17.0.2:48862->193.252.22.84:465: read: connection reset by peer
time="2020-10-14T01:30:00+02:00" level=debug msg="Checking containers for updated images"

J'ai donc rétabli le port 587 (qui est celui que j'utilise couramment avec ma boite mail avec un encryptage réglé sur automatique) et je retrouve ce message :

Citation

time="2020-10-14T09:51:18+02:00" level=info msg="Starting Watchtower and scheduling first run: 2020-10-15 01:30:00 +0200 CEST"
Failed to send notification email:  unencrypted connection

Ce qui me laisserait pensé qu'il manque un paramètre lié à l'encryptage de la connexion, dans les variables d'environnement liées aux notifications. J'ai pourtant regardé la doc de Watchtower mais rien vu (ou bien je suis aveugle ...).

J'ai aussi essayé en ajoutant la variable d'environnement "WATCHTOWER_NOTIFICATION_EMAIL_SERVER_TLS_SKIP_VERIFY" mais toujours pareil "Failed to send notification email:  unencrypted connection".

Donc si tu a une idée, car là je ne comprends pas, il semblerait que @Jeff777 ai aussi ce problème.

EDIT : Watchtower semble ne "scanner" que les conteneurs situés sur le réseau bridge par défaut 172.17.0.0. Il ne semble pas "scanner" mon réseau spécifique 172.20.0.0 dédié au monitoring. J'ai compris qu'il doit y avoir une certaine "étanchéité" entre les conteneurs dans docker, mais comment fait alors watchtower pour atteindre tous les autres conteneurs à vérifier car manifestement il ne "scanne" que son réseau ? Là non plus je ne comprends pas ...

Cordialement

oracle7😉

 

 

Modifié par oracle7
Lien vers le commentaire
Partager sur d’autres sites

J'ai lancé un docker-compose avec portainer-ce et j'ai le choix entre 3 options :

Capture.thumb.JPG.ee329fb75d0ae0926cd7d9cfd3af4d77.JPG

 

Quel est le bon/meilleur choix ?  🙄

Il y a 1 heure, oracle7 a dit :

Il ne semble pas "scanner" mon réseau spécifique 172.20.0.0 dédié au monitoring.

Tu as bien mis le label adhoc dans les "docker-compose" et relancé les container ?

Lien vers le commentaire
Partager sur d’autres sites

@Jeff777

Bonjour,

Oui et Oui aux deux questions.

Je me demande si je vais pas mettre finalement tous mes conteneurs dans le même réseau (celui de monitoring).

Puisque que c'est un réseau local, il n'est pas vu de l'extérieur, non ? Alors quel est le risque ?

Ce serait quand Watchtower se connecte à l'extérieur pour aller chercher les mises à jours d'images ?

J'avoue que je m'y perds un peu (même beaucoup !)...

Ton avis STP ?

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

@Jeff777

Bonjour,

Il y a 1 heure, Jeff777 a dit :

Tu as bien mis le label adhoc dans les "docker-compose" et relancé les container ?

Tu me mets finalement un doute.

J'ai effectivement relancé les conteneurs lors de la premières utilisation de Watchtower, mais depuis, suite à différents autres essais j'ai supprimé puis réinstallé Watchtower plusieurs fois.

J'aurais dû alors relancer aussi à chaque fois les autres conteneurs (on est d'accord : relancé = arrêt puis redémarrage et pas arrêt, suppression et réinstallation) ?

Je commence à y perdre mon latin dans tout cela ...😧

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

Il y a 20 heures, oracle7 a dit :

EDIT : Watchtower semble ne "scanner" que les conteneurs situés sur le réseau bridge par défaut 172.17.0.0. Il ne semble pas "scanner" mon réseau spécifique 172.20.0.0 dédié au monitoring. J'ai compris qu'il doit y avoir une certaine "étanchéité" entre les conteneurs dans docker, mais comment fait alors watchtower pour atteindre tous les autres conteneurs à vérifier car manifestement il ne "scanne" que son réseau ? Là non plus je ne comprends pas ...

Watchtower scanne tous les réseaux, qu'ils soient avec le driver bridge par défaut, créé par l'utilisateur ou macvlan. Est-ce que le label a été correctement entré dans les conteneurs que tu souhaites superviser et est-ce que tu as recréé les conteneurs suite à cela ?

EDIT : Je n'avais pas vu que @Jeff777 t'avait déjà fait la suggestion. 😉

Pour le problème d'envoi de mail, si tu as un nom de domaine chez OVH essaie de voir si tu as la même erreur avec leur serveur SMTP.

Lien vers le commentaire
Partager sur d’autres sites

@.Shad.

Bonjour,

Il y a 3 heures, .Shad. a dit :

Est-ce que le label a été correctement entré dans les conteneurs que tu souhaites superviser et est-ce que tu as recréé les conteneurs suite à cela ?

OUI, TOUS les fichiers docker-compose.yml de tous mes conteneurs comportent bien l'instruction "labels:" :

        labels:
            - "com.centurylinklabs.watchtower.enable=true"

Et j'ai bien relancé tous les conteneurs et j'ai même redémarré le NAS ensuite.

Il y a 3 heures, .Shad. a dit :

Pour le problème d'envoi de mail, si tu as un nom de domaine chez OVH essaie de voir si tu as la même erreur avec leur serveur SMTP.

Je n'utilises pas les services d'OVH pour l'envoi de mail dans ce cas précis. J'ai simplement repris et entré les informations de connexion de ma boite mail Orange.

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

@.Shad.

Bonjour,

C'est réglé après avoir redémarrer (reconstruit) tous les conteneurs. Watchtower à bien vu les mises à jour à faire et les a réalisées. SUPER ! 😀

Il n'y a plus que le problème de notifications par emails qui ne fonctionne pas.

@Jeff777 as-tu résolu le problème de ton coté et si oui qu'as-tu fait pour cela ?

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.