Gladys ist weg! (Dann wiedergefunden)

Aber wo ist sie denn nur?
Gestern Abend war noch alles in Ordnung, sie hat uns zum Schlafzimmer geführt und dann…

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:~ $'

Eine Idee?
Ich schwöre, wir haben uns nicht gestritten und sie wurde gut behandelt!

Du kannst:

docker ps -a

ausführen, um alle Container anzuzeigen, auch die gestoppten :slight_smile: (der Standardbefehl zeigt nur die laufenden Container an)

Es ist seltsam, normalerweise startet Gladys nach einem Absturz neu (sie ist auf restart=always eingestellt), du kannst die Logs mit:

docker logs gladys

überprüfen, um zu sehen, was passiert ist.

Um Gladys neu zu starten, reicht ein kurzes:

docker restart gladys

dafür :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:~ $

Und voilà…

Hast du wirklich gar nichts gemacht? Die Container verschwinden nicht einfach so ^^

Wie hast du Gladys installiert?

Auf welcher Hardware bist du genau? Und in Bezug auf die Festplatte (Micro-SD, SSD, Festplatte?)

Gar nichts, versprochen! Sie ist einfach nur in andere Gefilde gezogen. Ich verstehe sie, hier ist das Wetter beschissen :wink:
Installiert auf einem RPi 4 mit 4GB RAM, microSD 32GB Klasse A1 ab dem Bild vom Dezember '20.
Sie hat gestern Abend ihre letzte Szene ausgeführt, und nachdem sie die Nachttischlampen ausgeschaltet hatte, sah ich, dass die Verbindung zum MQTT von Gladys verloren ging (Blinken der LED am Stecker), aber ich habe mir keine Sorgen gemacht, denn das war schon mal passiert. Aber tatsächlich, bei 16 Grad im Haus am Morgen war die Sache schnell klar! Sie hat uns für immer verlassen.
Das heißt, es scheint, dass der DB-Ordner noch da ist. Wie kann ich also richtig vorgehen?
Ich hatte vor, bald auf eine SSD umzusteigen, aber ich hätte nicht warten sollen…

Keine Panik, du kannst Gladys mit dem Befehl aus der Gladys-Dokumentation im Abschnitt „Installation / Docker“ neu starten

Du hast einen Docker-Befehl, den du ausführst :slight_smile:

Bearbeitet: Es ist diese Dokumentation: Installation avec Docker | Gladys Assistant

Das habe ich mit dem Docker-Befehl geschafft!
Und Gladys, oder ihr Klon, ist wieder da!
Danke!
Bearbeitung: Offenbar ein Absturz um 23:54 Uhr laut den Bildern der Cams im Cache. Aber was ist passiert? Beschädigte SD-Karte?

Ehrlich gesagt sieht das eindeutig nach einer SD-Kartenbeschädigung aus (oder du hast die Wiedereröffnung der Bars gestern genutzt und vergessen, was du auf dem Nachhauseweg gemacht hast :smiley: )

Jedenfalls, bei deinem Setup und meinen Erfahrungen mit Docker habe ich noch nie gesehen, dass ein Container in der Produktion verschwindet (und ich arbeite mit Firmen, bei denen es Container wie Sand am Meer gibt :smiley: )

Also meiner Meinung nach könnte es sich um einen Kaskadenfehler handeln:

  • Die SD-Karte hat ein paar defekte Sektoren
  • Docker bemerkt, dass es Daten in schlechtem Zustand gibt, die nicht konsistent sind, und löscht den Container..

Tatsächlich wird dir ein Wechsel zu einer SSD langfristig mehr Stabilität bringen

Oh oder es könnte ein Watchtower-Bug sein (das Tool, das wir für automatische Updates nutzen). Ich bin auf das hier in ihrem Repo gestoßen:

@VonOx zur Information

Jedenfalls ist das nicht im Watchtower-Log:

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:~ $

Aber zwischen dem 17. und 20. Mai ist nichts…

Trotzdem, so verblüffend sein Abschied auch sein mag, sein so einfacher und sofort einsatzbereiter Rückkehr ist beeindruckend!
Ich bin begeistert von so viel Smarttitude!
Ich habe es schon gesagt, aber ich möchte noch ein bisschen darauf bestehen: Bravo an alle, die ein so schönes und effektives Produkt entwickelt haben!

:sweat_smile::sweat_smile::sweat_smile::sweat_smile::sweat_smile::sweat_smile: Zu stark.

Hallo @pierre-gilles, das ist ein bisschen neben der Spur, aber es würde mich interessieren, wie Docker-Container in der Produktion laufen, ob die Images aus den offiziellen Repositories bezogen werden oder nicht, auf welcher Technologie die Docker-Container laufen usw.
Ich werde bald überlegen müssen, wie ich eine kleine Dev-Infrastruktur aufbaue, das gibt mir ein paar Denkanstöße :slight_smile:

@Totof Sie laufen sehr gut :smiley:

Für private Kunden (private Firma) verwende ich private Docker-Registry (Docker Hub hat ein Angebot, GitHub auch, glaube ich). Kurz gesagt, musst du dich mit docker login anmelden, bevor du deine Container pullst

Um deine Container zu starten:

  • Entweder hast du eine « statische » Infrastruktur (die nicht mit der Nachfrage skaliert) und startest deine Container in einer Umgebung, die du bereitgestellt hast (ein Satz von VMs in der Cloud/Bare Metal). In diesem Fall kannst du docker-compose verwenden, um deine Container zu starten, oder einfach Skripte, wenn die Infrastruktur sehr einfach ist. Du setzt einen Load-Balancer vor deine Container, um den Verkehr zu verteilen.
  • Oder du hast eine Infrastruktur, die mit der Nachfrage skaliert/entskaliert, und in diesem Fall brauchst du einen Orchestrator wie Kubernetes. Es gibt verwaltete Angebote bei AWS, Azure, Google, DigitalOcean und anderen.. Nun, es ist gut für Projekte mit extrem hohem Traffic, aber 90% der Projekte können über einfache Skripte bereitgestellt werden, mit einem Load Balancer davor und hoppla, das reicht.

Wenn du noch Fragen hast, zögere nicht :slight_smile: (du kannst sogar ein anderes Thema erstellen, das ist hier ein bisschen OT ^^)

Danke für deine Antworten, ich werde ein Thema erstellen :slight_smile: