Mise à jour de Gladys sans Watchtower

J’ai installé Gladys sans Watchtower car je ne veux pas que Gladys et tous les autres containers soit mis à jour. Je veux attendre les premiers retours avant de mettre à jour. D’autant plus qu’avec les intégrations externes je ne pense pas que ce soit maintenant une bonne idée.

J’ai donc lancé manuellement la mise à jour mais cela ne fonctionne pas. En effet, l’image Watchtower est bien récupérée mais rien de plus. Au final, Gladys n’est pas mise à jour.

De plus, le fait de lancer cette mise à jour manuelle ne devrait pas mettre à jour les autres containeurs.

Bonjour @ArMour85,

Merci pour ce retour, et tu as raison sur un point : aujourd’hui la mise à jour manuelle lance un Watchtower en --run-once sans restreindre la liste des conteneurs, donc elle touche potentiellement tous les conteneurs de ta machine. C’est un comportement qu’on doit corriger, je le note.

Pour ton problème de mise à jour qui n’aboutit pas, j’ai besoin de quelques infos pour confirmer ce que je soupçonne. Deux causes possibles :

1. La façon dont tu as désactivé Watchtower. Si tu as ajouté le label com.centurylinklabs.watchtower.enable=false sur ton conteneur Gladys (méthode classique pour exclure un conteneur), alors le Watchtower lancé par le bouton « Mettre à jour » le respecte aussi : il démarre, ne trouve rien à mettre à jour, et s’arrête. Ce qui correspond exactement à ce que tu décris.

Peux-tu me donner le résultat de :

docker inspect gladys --format '{{json .Config.Labels}}'

Et me préciser comment tu as désactivé Watchtower : conteneur supprimé, conteneur arrêté, ou label sur les conteneurs ?

2. Une erreur silencieuse. Actuellement, si quelque chose échoue après le téléchargement de l’image, l’erreur n’est loggée que côté serveur : l’interface reste sur « Mise à jour en cours » sans rien afficher. Les logs de Gladys au moment où tu cliques sur le bouton nous diraient tout :

docker logs gladys --tail 200

(clique sur « Mettre à jour », attends une minute, puis lance la commande)

Et enfin, pour compléter :

docker ps -a

histoire de voir si un conteneur gladys-watchtower-… a bien démarré et avec quel code de sortie.

Merci d’avance, avec ça on devrait y voir clair rapidement.

Ben je n’ai rien désactivé, j’ai juste lancé la création du conteneur en lançant la commande de la doc. Je n’ai pas utilisé le docker compose.

Voici le résultat de la commande:

$ sudo docker ps -a
CONTAINER ID   IMAGE                            COMMAND                  CREATED        STATUS        PORTS     NAMES
fb8251117cc4   gladysassistant/gladys:v4.83.0   "docker-entrypoint.s…"   40 hours ago   Up 16 hours             gladys
$ sudo docker inspect gladys --format '{{json .Config.Labels}}'
{}

Voici les logs:

2026-08-02T12:59:39+0200 <info> system.installUpgrade.js:63 (System.installUpgrade) Pulling nickfedor/watchtower:latest image...
2026-08-02T12:59:41+0200 <info> system.installUpgrade.js:79 (System.installUpgrade) Watchtower container started
2026-08-02T12:59:44+0200 <info> system.installUpgrade.js:113 (System.installUpgrade) Watchtower container finished with status code 0

Pas de conteneur Watchtower mais l’image existe bien:

$ sudo docker image ls                                                                                                                                      
**i** Info →   U  In Use

**IMAGE**                            **ID**             **DISK USAGE**   **CONTENT SIZE**   **EXTRA**                                                                                             

**gladysassistant/gladys:v4.83.0**   92e700688a85          2GB          414MB    U                                                                                                

**nickfedor/watchtower:latest**      696a5fb17b9a         52MB         13.4MB

Tu as toutes les infos.

Merci @ArMour85, tes logs donnent la réponse. Ce n’est ni un label ni une erreur : c’est le tag de ton image.

Ton conteneur tourne sur gladysassistant/gladys:v4.83.0, c’est-à-dire un tag de version figé. Or Watchtower met à jour un conteneur en re-téléchargeant exactement le même tag que celui avec lequel il a été créé. Et v4.83.0 pointera toujours sur la même image, par définition. Watchtower démarre donc, vérifie, ne trouve rien de nouveau, et sort proprement en 3 secondes avec le code 0, ce que montrent tes logs. Avec ce tag, le bouton « Mettre à jour » ne pourra jamais rien faire.

Le tag documenté est gladysassistant/gladys:v4 : c’est un tag mobile qui suit les nouvelles versions.

Et le point important pour ton besoin : ce n’est pas le tag qui déclenche les mises à jour automatiques, c’est le conteneur Watchtower. Comme tu ne l’as pas installé, rien ne se mettra à jour tout seul. En passant sur :v4, tu gardes exactement le contrôle que tu veux, aucune mise à jour automatique, mais le bouton « Mettre à jour » fonctionne quand toi tu le décides. C’est la configuration que je te recommande.

Pour basculer (tes données sont dans /var/lib/gladysassistant, elles ne sont pas dans le conteneur, donc rien n’est perdu) :

sudo docker stop gladys && sudo docker rm gladys

Puis relance Gladys avec la commande ici : Installation avec Docker | Gladys Assistant

Tu récupéreras directement la 4.84.1, et les prochaines mises à jour se feront depuis l’interface, à ta demande.

Si tu préfères vraiment rester sur des tags figés, c’est possible aussi, mais il faudra faire la mise à jour à la main à chaque fois (docker pull gladysassistant/gladys:v4.84.1, puis stop/rm/run avec le nouveau tag).

Cela dit, ton retour met le doigt sur trois choses qu’on doit corriger de notre côté, et je vais m’en occuper :

  1. La mise à jour manuelle ne doit cibler que Gladys, pas tous les conteneurs de la machine, tu avais raison sur ce point.
  2. Quand rien n’est mis à jour ou qu’une erreur survient, l’interface doit le dire, au lieu de rester bloquée sur « Mise à jour en cours ».
  3. Gladys doit détecter qu’elle tourne sur un tag figé et te l’expliquer clairement, plutôt que de proposer un bouton qui ne peut pas fonctionner.

Merci pour le signalement, c’est très utile.

A oui j’avais oublié que j’avais choisi une version spécifique pour un test, du coup je comprends pourquoi ça ne fonctionne pas.

Content que ma bêtise met en lumière des problèmes :slightly_smiling_face:

Cela m’amène a une question. Est-il possible de faire autrement qu’avec Watchtower ? Gladys connait la dernière version disponible. Même avec ma bêtise il serait possible de mettre à jour avec la dernière version.
Une autre feature intéressante serait aussi de pouvoir revenir en arrière dans le cas ou la dernière version ne fonctionne pas. Cela va demander de faire également un backup de la base de données.

Les correctifs sont disponibles dans la dernière version de Gladys !

Il n’y a pas vraiment de meilleur solution, car Gladys ne peut pas tuer puis re-créer son container de l’intérieur, il faut forcément un container tiers qui fasse le travail. Autant se baser sur Watchtower, la référence du milieu depuis des années :slight_smile: