Aller au contenu

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


.Shad.

Messages recommandés

il y a une heure, Lelolo a dit :

Je pense que l'on en a parlé plus haut : tu as atteint ta limite de pull

Oups, j'ai pas fait attention 😅

il y a une heure, .Shad. a dit :

Pour compléter la réponse de @Lelolo :

pull-limit-docker.png

C'est 100 pulls par jour maximum pour la version community (gratuite) de Docker.
Alors avec un intervalle de 300s tu y arrives vite.

Rhooo ! Et beh...
Du coup j'ai cramé tous mes pull de la journée... je ne pourrais pas faire de nouveau conteneurs avant demain 😅
Merci pour ces explications 👍

Lien vers le commentaire
Partager sur d’autres sites

Concrètement je ne vois pas d'intérêt de mettre à jour aussi souvent pour un particulier.
Uniquement dans un environnement de développement en équipe.
Et ces gens-là créent généralement leur propre dépôt auto-hébergé ou sur GitLab, et ne sont donc pas soumis aux restrictions (ou alors utilisent la version payante de Docker).

Je trouve le cron bien plus adapté. 😉 

Lien vers le commentaire
Partager sur d’autres sites

il y a 18 minutes, .Shad. a dit :

Concrètement je ne vois pas d'intérêt de mettre à jour aussi souvent pour un particulier.
Uniquement dans un environnement de développement en équipe.
Et ces gens-là créent généralement leur propre dépôt auto-hébergé ou sur GitLab, et ne sont donc pas soumis aux restrictions (ou alors utilisent la version payante de Docker).

Je trouve le cron bien plus adapté. 😉 

Je suis bien d'accord avec toi 🙂
Mais je faisais des tests ce matin, et pour voir que ça fonctionnait sans que j'attende une semaine... il fallait bien que je fasse que l'exécution se passe rapidement 🙂 
Si j'avais su qu'il y avait une limitation du nb de pull / jour... j'aurais été plus attentif à la fréquence de vérification ce matin pendant les tests ^^

Bon là j'ai mis tous les jours à 9h. Je changerais demain la fréquence à une fois par semaine ^^

Lien vers le commentaire
Partager sur d’autres sites

il y a 50 minutes, MilesTEG1 a dit :

Mais je faisais des tests ce matin, et pour voir que ça fonctionnait sans que j'attende une semaine.

Bonjour @MilesTEG1

Lorsque j'ai fait mes tests, j'ai modifié le cron dans le docker-compose

Tu laisses 2 minutes le temps de faire 

docker-compose down  puis docker-compose up -d

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

L'exécution du jour s'est bien passée, mais je n'ai pas eu de mail de notification...
Voilà le log d'exécution du jour.
Quelqu'un sait-il pourquoi j'ai    "No credentials for ... in /config.json"    pour chaque conteneur ?

time="2020-11-30T09:42:59+01:00" level=debug,
time="2020-11-30T09:43:00+01:00" level=debug msg="Sleeping for a second to ensure the docker api client has been properly initialized.",
time="2020-11-30T09:43:01+01:00" level=debug msg="Retrieving running containers",
time="2020-11-30T09:43:01+01:00" level=debug msg="There are no additional watchtower containers",
time="2020-11-30T09:43:01+01:00" level=info msg="Starting Watchtower and scheduling first run: 2020-12-01 09:00:00 +0100 CET",
time="2020-12-01T09:00:00+01:00" level=debug msg="Checking containers for updated images",
time="2020-12-01T09:00:00+01:00" level=debug msg="Retrieving running containers",
time="2020-12-01T09:00:00+01:00" level=debug msg="Pulling containrrr/watchtower:latest for /watchtower",
time="2020-12-01T09:00:00+01:00" level=debug msg="No credentials for containrrr in /config.json",
time="2020-12-01T09:00:00+01:00" level=debug msg="Got image name: containrrr/watchtower:latest",
time="2020-12-01T09:00:03+01:00" level=debug msg="No new images found for /watchtower",
time="2020-12-01T09:00:03+01:00" level=debug msg="Pulling linuxserver/heimdall:latest for /heimdall",
time="2020-12-01T09:00:03+01:00" level=debug msg="No credentials for linuxserver in /config.json",
time="2020-12-01T09:00:03+01:00" level=debug msg="Got image name: linuxserver/heimdall:latest",
time="2020-12-01T09:00:04+01:00" level=debug msg="No new images found for /heimdall",
time="2020-12-01T09:00:04+01:00" level=debug msg="Pulling portainer/portainer-ce:latest for /portainer",
time="2020-12-01T09:00:04+01:00" level=debug msg="No credentials for portainer in /config.json",
time="2020-12-01T09:00:04+01:00" level=debug msg="Got image name: portainer/portainer-ce:latest",
time="2020-12-01T09:00:05+01:00" level=debug msg="No new images found for /portainer",
time="2020-12-01T09:00:05+01:00" level=debug msg="Pulling chronograf:latest for /monitoring_chronograf",
time="2020-12-01T09:00:05+01:00" level=debug msg="No credentials for chronograf:latest in /config.json",
time="2020-12-01T09:00:05+01:00" level=debug msg="Got image name: chronograf:latest",
time="2020-12-01T09:00:07+01:00" level=debug msg="No new images found for /monitoring_chronograf",
time="2020-12-01T09:00:07+01:00" level=debug msg="Pulling telegraf:latest for /monitoring_telegraf",
time="2020-12-01T09:00:07+01:00" level=debug msg="No credentials for telegraf:latest in /config.json",
time="2020-12-01T09:00:07+01:00" level=debug msg="Got image name: telegraf:latest",
time="2020-12-01T09:00:09+01:00" level=debug msg="No new images found for /monitoring_telegraf",
time="2020-12-01T09:00:09+01:00" level=debug msg="Pulling grafana/grafana:latest for /monitoring_grafana",
time="2020-12-01T09:00:09+01:00" level=debug msg="No credentials for grafana in /config.json",
time="2020-12-01T09:00:09+01:00" level=debug msg="Got image name: grafana/grafana:latest",
time="2020-12-01T09:00:11+01:00" level=debug msg="No new images found for /monitoring_grafana",
time="2020-12-01T09:00:11+01:00" level=debug msg="Pulling influxdb:latest for /monitoring_influxdb",
time="2020-12-01T09:00:11+01:00" level=debug msg="No credentials for influxdb:latest in /config.json",
time="2020-12-01T09:00:11+01:00" level=debug msg="Got image name: influxdb:latest",
time="2020-12-01T09:00:12+01:00" level=debug msg="No new images found for /monitoring_influxdb",
time="2020-12-01T09:00:12+01:00" level=debug msg="Pulling linuxserver/plex:latest for /linuxserver_plex",
time="2020-12-01T09:00:12+01:00" level=debug msg="No credentials for linuxserver in /config.json",
time="2020-12-01T09:00:12+01:00" level=debug msg="Got image name: linuxserver/plex:latest",
time="2020-12-01T09:00:14+01:00" level=debug msg="No new images found for /linuxserver_plex",
time="2020-12-01T09:00:14+01:00" level=debug msg="Pulling linuxserver/tautulli:latest for /plex_tautulli",
time="2020-12-01T09:00:14+01:00" level=debug msg="No credentials for linuxserver in /config.json",
time="2020-12-01T09:00:14+01:00" level=debug msg="Got image name: linuxserver/tautulli:latest",
time="2020-12-01T09:00:15+01:00" level=debug msg="No new images found for /plex_tautulli",
time="2020-12-01T09:00:15+01:00" level=debug msg="Pulling adguard/adguardhome:latest for /adguardhome",
time="2020-12-01T09:00:15+01:00" level=debug msg="No credentials for adguard in /config.json",
time="2020-12-01T09:00:15+01:00" level=debug msg="Got image name: adguard/adguardhome:latest",
time="2020-12-01T09:00:17+01:00" level=debug msg="No new images found for /adguardhome",
time="2020-12-01T09:00:17+01:00" level=debug msg="This is the watchtower container /watchtower",
time="2020-12-01T09:00:17+01:00" level=debug msg="Scheduled next run: 2020-12-02 09:00:00 +0100 CET",

 

Lien vers le commentaire
Partager sur d’autres sites

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

Il n'a trouvé aucun dépôt privé auquel se connecter dans le fichier config.json
Si tu n'en as pas ajouté, rien de plus normal.
Plus d'informations ici : https://github.com/containrrr/watchtower/blob/master/docs/private-registries.md

Je me doutais que ce serait ça, mais j'ai pas de fichier config.json, donc je trouve ça étrange d'avoir le message alors que je n'ai pas configuré le truc pour utiliser un config.json.

Bref, c'est pas trop grave 😉 En tout ça ça semble fonctionner correctement, et j'ai passé le cron à une fois par semaine le samedi matin.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Hello par ici,

Dites, y a moyen de lancer manuellement une vérification de MAJ quand je sais qu'il y a un conteneur qui est à mettre à jour ?
Par exemple, Plex a eu quelques MAJ récemment, et ça me fait suer de devoir modifier la planification dans le docker-compose.yml à chaque fois que je veux faire une mise à jour forcée avant la date planifiée.

S'il faut je suis prêt à créer un conteneur dédiée au lancement oneshot ^^ mais je mets quoi dans le docker-compose ?

Merci d'avance 😇👋🏻🤪

Lien vers le commentaire
Partager sur d’autres sites

il y a 9 minutes, MilesTEG1 a dit :

et ça me fait suer de devoir modifier la planification dans le docker-compose.yml à chaque fois que je veux faire une mise à jour forcée avant la date planifiée.

Avec watchtower :

"docker-compose down" on modifie le cron puis "docker-compose up -d" c'est quand même pas très long !🙂

 

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

Pour ma part je vérifie tous les jours a 6h.

Sinon il est possible de mettre a la place du cron un intervalle en secondes.

 

Plus simple, quand je veut forcer une MAJ, je passe par Portainer, je clique sur Recreate en sélectionnant l'option "pull new image" et Portainer récupère la nouvelle image et met a jour le conteneur/recreer comme le ferait watchtower

Lien vers le commentaire
Partager sur d’autres sites

il y a 16 minutes, Jeff777 a dit :

Avec watchtower :

"docker-compose down" on modifie le cron puis "docker-compose up -d" c'est quand même pas très long !🙂

 

C'est ce que je fais habituellement, mais c'est pénible...

il y a 12 minutes, EVOTk a dit :

Pour ma part je vérifie tous les jours a 6h.

Sinon il est possible de mettre a la place du cron un intervalle en secondes.

 

Plus simple, quand je veut forcer une MAJ, je passe par Portainer, je clique sur Recreate en sélectionnant l'option "pull new image" et Portainer récupère la nouvelle image et met a jour le conteneur/recreer comme le ferait watchtower

Ha oui c'est vrai que Portainer permet de recréer le conteneur avec la dernière image... Je vais faire ça tiens 😉
Merci ^^

Lien vers le commentaire
Partager sur d’autres sites

Bon bah ça marche par avec le conteneur plex... 😅

J'ai eu beau recréer le conteneur plusieurs fois, il ne s'est pas mis à jour.

Mais en changeant les jours et heures d'exécution de watchtower, c'est enfin mis à jour...

edit : je me dis que c'est peut-être qu'au moment où j'ai fait mes tentatives de recréation l'image de linuxserver n'était pas encore à jour 🤪
Du coup pas sur que ça n'aurait pas fonctionné avec Portainer 😅

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

il y a 32 minutes, MilesTEG1 a dit :

Du coup pas sur que ça n'aurait pas fonctionné avec Portainer 😅

En docker, la version de Plex ne dépend pas du conteneur.

Quand tu démarre le conteneur, il vérifie la dernière Maj de plex, et l'install au besoin. Pas besoin de ré-créer le conteneur pour que Plex soit a jour, juste un redémarrage.

Lien vers le commentaire
Partager sur d’autres sites

il y a 2 minutes, EVOTk a dit :

En docker, la version de Plex ne dépend pas du conteneur.

Quand tu démarre le conteneur, il vérifie la dernière Maj de plex, et l'install au besoin. Pas besoin de ré-créer le conteneur pour que Plex soit a jour, juste un redémarrage.

Haa ! C'est sur ça ?
Même avec la version de linuxserver ? 

(bon je pense que leur image n'était pas encore à jour quand j'ai recréé et aussi redémarré le conteneur...

à la prochaine mise à jour, je vérifierais la présence de leur version à jour avant de tenter de juste redémarrer le conteneur

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

il y a 15 minutes, MilesTEG1 a dit :

Haa ! C'est sur ça ?
Même avec la version de linuxserver ? 

Sur et certains. Que ce soit l'image linuxserver ou l'image officielle.

Par exemple, voici une partie de mes logs a un redémarrage :


Atempting to upgrade to: 1.21.1.3795-ee64ab56f,
[cont-init.d] 60-plex-update: executing... ,
2020-12-15 16:50:35 URL:https://downloads.plex.tv/plex-media-server-new/1.21.1.3795-ee64ab56f/debian/plexmediaserver_1.21.1.3795-ee64ab56f_amd64.deb [81503310/81503310] -> "/tmp/plexmediaserver_1.21.1.3795-ee64ab56f_amd64.deb" [1],
PlexMediaServer install: Pre-installation Validation.,
(Reading database ... 11157 files and directories currently installed.),
Preparing to unpack .../plexmediaserver_1.21.1.3795-ee64ab56f_amd64.deb ...,
PlexMediaServer install: Docker detected.  Preinstallation validation not required.,
Unpacking plexmediaserver (1.21.1.3795-ee64ab56f) over (1.21.1.3766-7e23ef53c) ...,
Setting up plexmediaserver (1.21.1.3795-ee64ab56f) ...,
PlexMediaServer install: Docker detected. Postinstallation tasks not required. Continuing.,
Processing triggers for libc-bin (2.31-0ubuntu9.1) ...,
[cont-init.d] 60-plex-update: exited 0.,
[cont-init.d] 99-custom-scripts: executing... ,
[custom-init] no custom files found exiting...,
[cont-init.d] 99-custom-scripts: exited 0.,
[cont-init.d] done.,
[services.d] starting services,
[services.d] done.,
Starting Plex Media Server.

Le conteneur voit qu'une MAJ est dispo chez Plex, il l’installe puis continu le démarrage.

La variable VERSION du conteneur doit être "latest".

Lien vers le commentaire
Partager sur d’autres sites

il y a 9 minutes, EVOTk a dit :

Sur et certains. Que ce soit l'image linuxserver ou l'image officielle.

Par exemple, voici une partie de mes logs a un redémarrage :




Atempting to upgrade to: 1.21.1.3795-ee64ab56f,
[cont-init.d] 60-plex-update: executing... ,
2020-12-15 16:50:35 URL:https://downloads.plex.tv/plex-media-server-new/1.21.1.3795-ee64ab56f/debian/plexmediaserver_1.21.1.3795-ee64ab56f_amd64.deb [81503310/81503310] -> "/tmp/plexmediaserver_1.21.1.3795-ee64ab56f_amd64.deb" [1],
PlexMediaServer install: Pre-installation Validation.,
(Reading database ... 11157 files and directories currently installed.),
Preparing to unpack .../plexmediaserver_1.21.1.3795-ee64ab56f_amd64.deb ...,
PlexMediaServer install: Docker detected.  Preinstallation validation not required.,
Unpacking plexmediaserver (1.21.1.3795-ee64ab56f) over (1.21.1.3766-7e23ef53c) ...,
Setting up plexmediaserver (1.21.1.3795-ee64ab56f) ...,
PlexMediaServer install: Docker detected. Postinstallation tasks not required. Continuing.,
Processing triggers for libc-bin (2.31-0ubuntu9.1) ...,
[cont-init.d] 60-plex-update: exited 0.,
[cont-init.d] 99-custom-scripts: executing... ,
[custom-init] no custom files found exiting...,
[cont-init.d] 99-custom-scripts: exited 0.,
[cont-init.d] done.,
[services.d] starting services,
[services.d] done.,
Starting Plex Media Server.

Le conteneur voit qu'une MAJ est dispo chez Plex, il l’installe puis continu le démarrage.

La variable VERSION du conteneur doit être "latest".

J'ai ça :image.png.6fac800e41c87525736288a0b65a75f5.pngimage.png.306c4dda089877ae6eaac64c1142b753.png
Et en lisant la doc de linuxserver je comprends pourquoi ça ne se mettais pas à jour avec un redémarrage :

Du coup, faut que je change le settings sur latest, non ?

Le fait d'avoir mis l'image en     image: linuxserver/plex:latest

    image: linuxserver/plex:latest

 ne suffit pas...

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

Oui d'ailleurs je te conseil d'utiliser leur nouveau repos :

ghcr.io/linuxserver/plex

Pour le latest sur l'image il est facultatif, car par defaut docker va prendre la version latest.

Pour le latest sur la variable VERSION il est obligatoire si tu veut les MAJ sur un simple redémarrage.

Lien vers le commentaire
Partager sur d’autres sites

à l’instant, EVOTk a dit :

Oui d'ailleurs je te conseil d'utiliser leur nouveau repos :


ghcr.io/linuxserver/plex

Pour le latest sur l'image il est facultatif, car par defaut docker va prendre la version latest.

Pour le latest sur la variable VERSION il est obligatoire si tu veut les MAJ sur un simple redémarrage.

Ok, je vais mettre en latest la variable VERSION.
Par contre pour leur dépôt, je ne sais plus pour quelle image, mais ça avait téléchargé je sais pas combien de version... du coup je suis revenu sur linuxserver/plex:latest.
Il change quoi le nouveau dépôt ?

Lien vers le commentaire
Partager sur d’autres sites

il y a 1 minute, EVOTk a dit :

Salut,

Oui car Docker quand tu veut "pull" l'image, voit que l'image DockerHub est identique a celle que tu souhaite obtenir. Elle se retrouve donc taggé des deux dépots.

Ok, et donc du coup ça va rester ainsi éternellement puisque je suppose quand un dépôt aura l'image mise à jour l'autre aussi... ?

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.