Hallo, habe eben mit Entsetzen festgestellt, dass wenn ich bspw. Variablen lösche oder etwas hinzufüge an Instanzen und direkt danach den Docker neu starte, die Änderungen nicht gewirkt haben. Die gelöschten Variablen sind wieder da und die neu angelegten sind weg.
Muss ich einfach x Minuten warten, bevor man den Docker neustartet?
Sofern du sauber Stop + Start machst werden die Änderungen gespeichert. Sicher, dass du die Data Mounts richtig gesetzt hast? Und das der Container auch sauber runterfährt? Das kannst du am besten in den Logfiles prüfen.
Zum 1. : Ich verspreche das nächste mal früher zu suchen nur durch einen Zufall hab ich gerade gesehen, dass es hier schon einen Beitrag gab, dabei hab ich paresy eben schon im Discord „aufgehalten“…
aber 2. eine Lösung hast du ja noch nicht…
ich auch noch nicht ganz, bin aber dichter dran…
Docker fährt den Container sauber runter, aber Standardmäßig hat man nur 10 Sekunden bis er alles killt. Mein Symcon wartet aber noch auf das beenden der PHP-Threads. Ich hab dann mal auf 60 Sekunden erhöht, aber bei mir reicht das immer noch nicht. Jetzt suche ich mal warum bei mir Tasmota-Scripte „hängen“ bleiben, aber vielleicht genügt es dir ja auch die Zeit erstmal hoch zu setzen. Das geht über 2 Wege: 1. beim docker-Befehl zum erzeugen des Container --StopTimout mitzugeben oder 2. im docker-compose-Script. Da ich Portainer nutze und mein Container mit viel „config“ schon lief habe ich bei mir docker-compose genutzt (dazu hab ich mir mit https://github.com/Red5d/docker-autocompose ein Compose-Script aus meinem laufenden Container erzeugt). Wichtig ist aber nur der Parameter stop_grace_period: 60s (keine Ahnung warum der hier anders heisst).
Vielleicht hilft es dir ja weiter… wenn meine Zombie-Scripte weg sind teste ich auch weiter
@FRAD Update: Seit dem meine Zombie-Threads weg sind, funktioniert es zumindest mit einem TimeOut von 30 Sekunden zuverlässig.
Falls du das bei dir auch einbauen möchtest können wir gerne für dich eine compose-Datei dängeln. Schau doch auch mal ob du auch noch Zombies hast.
hab einen sanfteren Weg gefunden den Container zu restarten und nichts zu verlieren.
mit „kill 1“
wird Symcon beendet, kann sich noch runterfahren und speichern, wenn der Prozess dann ganz weg ist erkennt es der Container und beendet sich… da ich die Restart-Policies auf „always“ habe, startet docker danach den Container hübsch neu. Der Vorteil ist, dass das stoppen des Container erst passiert, wenn sich Symcon beendet hat (also schon gespeichert hat) und damit nichts verloren geht und kein Timeout notwendig ist.
das ist richtig… ich habe es bei mir 2-Stufig umgesetzt… 1. Stufe der Kill , der es hoffentlich „sanft“ zuende bringt, aber wenn es dann nicht zuende kommt, gehe ich mit Docker REmote Daemon auf den Docker-Host und veranlasse bei dem dann den Container-Restart. Dabei ist aber in allen Fällen die Gefahr dar, das die Daten nicht gesichert sind.