Gladys est partie! (Puis retrouvée)

Mais où est-elle donc ?
Hier soir, tout allait bien, elle nous a conduit vers la chambre et puis…

pi@Gladys:~ $ docker container ls
CONTAINER ID   IMAGE                                COMMAND                  CREATED       STATUS          PORTS      NAMES
6cb19b851498   containrrr/watchtower:armhf-latest   "/watchtower --clean…"   3 weeks ago   Up 14 minutes   8080/tcp   watchtower
709ddb530bac   eclipse-mosquitto:2                  "/docker-entrypoint.…"   4 weeks ago   Up 14 minutes              eclipse-mosquitto
pi@Gladys:~ $'

Une idée ?
Je vous jure qu’on ne s’est pas disputés et qu’elle était bien traitée !

Tu peux faire:

docker ps -a

Pour voir tous les containers, même stoppé :slight_smile: (la commande par défaut ne montre que les containers qui tournent)

C’est bizarre, normalement en cas de crash Gladys restart (elle est en restart=always), tu peux regarder les logs avec:

docker logs gladys

Voir ce qu’il s’est passé.

Pour redémarrer Gladys, un petit:

docker restart gladys

Fera l’affaire :slight_smile:

pi@Gladys:~ $ docker logs gladys
Error: No such container: gladys
pi@Gladys:~ $ docker ps -a
CONTAINER ID   IMAGE                                COMMAND                  CREATED       STATUS       PORTS      NAMES
6cb19b851498   containrrr/watchtower:armhf-latest   "/watchtower --clean…"   3 weeks ago   Up 4 hours   8080/tcp   watchtower
709ddb530bac   eclipse-mosquitto:2                  "/docker-entrypoint.…"   4 weeks ago   Up 4 hours              eclipse-mosquitto
pi@Gladys:~ $

Et voilà…

Tu n’as vraiment rien fait? ça disparait pas comme ça les containers ^^

Comment as tu installé Gladys?

Tu es sur quel hardware exactement? et en terme de disque (micro-SD, SSD, disque dur?)

Rien fait du tout, promis! Elle est juste partie vers d’autres horizons. Je la comprends, ici le temps est pourri :wink:
Installée sur un RPi 4 4Go de RAM, microSD 32Go classe A1 depuis l’image venant du site en décembre '20.
Elle a exécuté sa dernière scène hier soir puis, après qu’elle ait éteins les lampes de chevet, j’ai vu que la connexion avec le MQTT de Gladys était perdue (clignotement du témoin sur la prise) mais je ne me suis pas inquiété car c’était déjà arrivé. Mais en fait, au vu des 16 degrés dans la maison au matin, le constat a été vite fait! Elle nous a quittés définitivement.
Cela dit, il semble que le dossier de la DB soit toujours là. Du coup, comment faire pour bien faire?
Je comptais faire un passage en SSD d’ici peu mais je n’aurais pas dû attendre…

1 Like

Pas de panique, tu peux relancer Gladys en utilisant la commande de la documentation Gladys, dans la rubrique “installation / Docker”

Tu as une commande docker run, tu la lance :slight_smile:

Edit: c’est cette doc: Docker | Gladys Assistant

1 Like

J’y suis arrivé avec la commande Docker !
Et Gladys, ou son clone, est revenue!
Merci!
Édit: apparemment, plantage à 23h54 d’après les images des cams dans le cache. Mais que s’est-il passé? SD corrompue ?

Honnêtement ça ressemble clairement à une corruption SD (Bon ou alors t’as profité de la réouverture des bars hier et tu as oublié ce que t’as fais en rentrant :smiley: )

En tout cas vu ton setup et mes expériences avec Docker, je n’ai absolument jamais vu un container qui disparait en production (et je bosse avec des boites ou du container il y en a à la pelle :smiley: )

Donc à mon avis ça peut-être un bug en cascade:

  • La SD a quelques secteurs foutu
  • Docker se rend compte qu’il y a de la donnée en mauvaise état plus cohérente, et détruit le container…

Effectivement passer à un SSD t’apportera plus de stabilité sur le long terme

2 Likes

Oh ou alors ça pourrait être un bug Watchtower (l’utilitaire qu’on utilise pour faire les mises à jour automatique), je suis tombé sur ça sur leur repo:

@VonOx pour information

En tout cas, ce n’est pas dans le log de Watchtower :

time="2021-05-13T10:13:56Z" level=info msg="Stopping /gladys (24aa5c068c67) with SIGTERM"
time="2021-05-13T10:14:07Z" level=info msg="Creating /gladys"
time="2021-05-13T10:14:08Z" level=info msg="Removing image 6666a80d7b68"
time="2021-05-16T20:38:18Z" level=info msg="Waiting for running update to be finished..."
time="2021-05-16T20:39:27Z" level=info msg="Watchtower 1.3.0\nUsing no notifications\nChecking all containers (except explicitly disabled with label)\nScheduling first run: 2021-05-17 20:39:27 +0000 UTC\nNote that the first check will be performed in 23 hours, 59 minutes, 59 seconds"
time="2021-05-20T05:22:40Z" level=info msg="Watchtower 1.3.0\nUsing no notifications\nChecking all containers (except explicitly disabled with label)\nScheduling first run: 2021-05-21 05:22:40 +0000 UTC\nNote that the first check will be performed in 23 hours, 59 minutes, 59 seconds"
pi@Gladys:~ $

Par contre, il n’y a rien entre le 17 et le 20…

1 Like

Tout de même, aussi étonnant que son départ puisse être, son retour si aisé et immédiatement opérationnel est impressionnant !
Je suis émerveillé par tant de smarttitude !
Je l’ai déjà dit mais j’ai envie d’insister encore un peu : bravo à tous d’avoir développé un si beau et efficace produit !

2 Likes

:sweat_smile::sweat_smile::sweat_smile::sweat_smile::sweat_smile::sweat_smile: Trop fort.

Salut @pierre-gilles , c’est un peu hors sujet mais ça m’intérésserais bien de savoir comment tourne des dockers en prod, si les images sont récupéré sur les dépôts officiel ou non, sur quelle techno tourne les dockers etc.
Je vais bientot devoir réfléchir pour monter une petite infra de dev, ça me donnera des pistes de reflexion :slight_smile:

@Totof Ils tournent très bien :smiley:

Pour des clients privée (boite privée), j’utilise des registry Docker privée (docker hub a une offre, Github aussi je crois). En gros tu dois faire un docker login avant de pull tes containers

Pour lancer tes containers:

  • soit si tu as une infra “statique” (qui ne se scale pas avec la demande) et tu lance tes containers dans un environnement que tu as déployé (un set de VMs dans le Cloud/du bare metal). Dans ce cas tu peux utiliser docker-compose pour lancer tes containers par exemple, ou juste des scripts si l’infra est toute simple. Tu mets un load-balancer devant tes containers pour répartir le traffic.
  • Soit tu as une infra qui scale/unscale suivant la demande, et dans ce cas il te faut un orchestrateur type Kubernetes, il y a des offres managées chez AWS, Azure, Google, DigitalOcean et autre… Après bon, c’est bien pour les projets à hyper fort traffic, mais 90% des projets peuvent être déployé via des simples scripts, avec un load balancer devant et hop, ça suffit.

Si tu as d’autres questions n’hésite pas :slight_smile: (tu peux limite créer un autre sujet, c’est un peu HS ici ^^)

Merci pour tes réponses, je vais faire un topic :slight_smile: