NEWS
Bekomme ioBroker im Docker nicht restauriert
-
Hallo,
ich versuche mich kurz zu halten.
Ich wollte ioBroker testen um zu sehen ob es meine Tasmota-Werte empfangen und speichern kann.
Da ich einen XENServer besitze habe ich ein neue DomU mit Debian 12 installiert.
Dort wurde Docker installiert und rudimentär getestet.
Dann wurde nach der Anleitung ioBroker für Docker erst mal ioBroker gestartet:docker run -p 8081:8081 -p 1883:1883 -p 1884:1884 --name iobroker -h iobroker buanet/iobroker
Die Ersteinrichtung war erfolgreich.
Ich konnte auch das MQTT Modul installieren und alle Werte wurden mittels dem Scriptkram empfangen.
Ich habe dann noch ein Modul für die Auswertung installiert und auch dort sah es gut aus.
Dann kam noch ein Modul zum Anzeigen von Graphen hinzu.Nach ein paar Tagen war ich soweit zufrieden. Bei einem Zugriff ist dann aber aufgefallen das auch der Port 8082 benötigt wird. Dazu muss aber wohl der Docker neu mit run gestartet werden.
Da das ganze noch nicht neustartsicher war habe ich mit dem BackIt Modul ein Komplettbackup erstellt.
Die Backupdatei habe ich aus dem Docker-Container heraus kopiert.Wegen eines Stromausfalls wurde dann der XENServer und dessen DomU alle herunter gefahren.
Nach der Wiederherstellung wurde alles wieder gestartet. Wie zu erwarten war, war aber der ioBroker-Container wieder zurückgesetzt und die Konfiguration wurde erneut gestartet.Ich habe dann den Container und dessen Images entfernt und den Container nun mit zusätzlichem Portmapping und einem Stammverzeichnis für die Dockerdaten gestartet, damit diese nicht bei einem neuen Docker-/Containerstart verloren gehen:
docker run -p 8081:8081 -p 8082:8082 -p 1883:1883 -p 1884:1884 -v iobrokerdata:/opt/iobroker --name iobroker -h iobroker buanet/iobroker
Nach dem Start habe ich das außerhalb des Containers gespeicherte Backup in den Container kopiert und soweit die Grundeinrichtung durch geklickt bis ich mittels BackItUp Modul die Sicherung einspielen konnte.
Es gab keine Fehlermeldung, aber ein Hinweis das zum Abschluss ioBroker neu gestartet werden muss.
Nach einiger Zeit war der Container scheinbar gestoppt. Die letzten Meldungen waren-------------------------------------------------------------------------------- ----- Step 5 of 5: ioBroker startup ----- -------------------------------------------------------------------------------- Starting ioBroker... ##### #### ### ## # iobroker.js-controller log output # ## ### #### ##### host.iobroker check instance "system.adapter.admin.0" for host "iobroker" host.iobroker check instance "system.adapter.discovery.0" for host "iobroker" host.iobroker check instance "system.adapter.backitup.0" for host "iobroker" ================================== > LOG REDIRECT system.adapter.admin.0 => true [system.adapter.admin.0.logging] Send diag info: {"uuid":"a8ac15b0-c379-48fb-8dd9-12f61cc7f059","language":"de","country":"","hosts":[{"version":"4.0.24","platform":"Javascript/Node.js","type":"linux"}],"node":" k Y } ================================== > LOG REDIRECT system.adapter.admin.0 => false [Process stopped] ================================== > LOG REDIRECT system.adapter.admin.0 => false [system.adapter.admin.0.logging] Terminated Recived termination signal (SIGTERM). Shutting down ioBroker...
Ich habe diesen versucht zu starten und kann mittels exec auch wieder in den Container.
Aber weder ist der Webserver auf Port 8081 zu erreichen noch sehe ich das etwas vom iobroker läuft.Was mache ich falsch? Soltte nach dem Restore des Backups und den Neustart nicht alles wieder laufen?
Ich habe nun mehrere Tage auch gewartet ob sich noch etwas tut aber am Zustand scheint sich nichts zu ändern. Auch sehe ich nicht, das sich seit dem was in irgendwelchen Logs getan hat.
Alerdings scheint zumindest ein script zu laufen:root@docker:~# docker exec iobroker ps -ext PID TTY STAT TIME COMMAND 1 ? Ss 0:00 bash /opt/scripts/iobroker_startup.sh HOSTNAME=iobroker LANGUAGE=de_DE:de PWD=/opt/iobroker SETUID=1000 TZ=Europe/Berlin HOME=/root LANG=de_DE.UTF-8h 136 ? Sl 64:57 iobroker.js-controller 716168 ? Rs 0:00 ps -ext PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=iobroker DEBIAN_FRONTEND=teletype LANG=de_DE.UTF-8 LANGUAGE=de_DE root@docker:~# docker exec iobroker top -b top - 15:20:53 up 14 days, 4:40, 0 users, load average: 0,06, 0,05, 0,01 Tasks: 4 total, 1 running, 3 sleeping, 0 stopped, 0 zombie %Cpu(s): 5,9 us, 5,9 sy, 0,0 ni, 88,2 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st MiB Mem : 1960,2 total, 78,9 free, 260,6 used, 1620,6 buff/cache MiB Swap: 4096,0 total, 4095,7 free, 0,2 used. 1668,8 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 716357 root 20 0 10176 3704 3296 R 6,7 0,2 0:00.02 top 1 root 20 0 7372 3500 3156 S 0,0 0,2 0:00.05 bash 136 iobroker 20 0 900220 128496 39320 S 0,0 6,4 64:57.67 iobroke+ 716337 root 20 0 10176 3616 3212 S 0,0 0,2 0:00.02 top^C root@docker:~#
Funktioniert das Backup Restore denn überhaupt? Angeblich soll ja nur da mit dem Modul erzeugte Backup für ein vollständigen Restore reichen.
Ich bin noch recht neu was Docker betrifft. Daher könnte ja auch da irgendwie der Hund begraben sein.
Da ich ja nur noch die Backupdatei habe kann ich den Container auch noch ein weiteres mal neu einrichten, aber ich glaube nicht das das viel bringt.
Möglicherweise ist meine Einordnung des Problems in „Installation“ nicht ganz korrekt aber meiner Ansicht nach auch nicht ganz falsch.
Danke schon mal für die Hilfe.
-
@tasuanetrukiat sagte in Bekomme ioBroker im Docker nicht restauriert:
noch sehe ich das etwas vom iobroker läuft.
und
Alerdings scheint zumindest ein script zu laufen:
Es läuft doch ein wenig mehr; als Prozess 136.
-
Ich kenne mich mit Docker nicht aus. Ist zu komplex für mich.
Aber das klingt für mich nicht richtig.
@tasuanetrukiat sagte in Bekomme ioBroker im Docker nicht restauriert:
Nach dem Start habe ich das außerhalb des Containers gespeicherte Backup in den Container kopiert
für den Restore von ioBroker bei Docker gibt es meines Wissens ein bestimmtes Procedere.
-
@homoran Ok, habe das hier gefunden.
Der einzige Unterschied den ich ich zu Methode 2 gemacht hatte war das ich die Backupdatei erst nach dem starten des Containers in diesen kopieren konnte und den Restore von Hand anstoßen musste und damit nicht den autorestore der da beschrieben steht verwendet habe.
Mal sehen wie ich die Datei sauber in das Image vor dem neuen ersten docker run … bekomme. -
@tasuanetrukiat Es scheint noch mehr zu laufen. In folgender Datei werden regelmäßig Einträge ergänzt:
root@docker:~# docker exec -it iobroker cat /opt/iobroker/iobroker-data/states.jsonl |jq . |tail "k": "system.host.17e9c2544f30.cputime", "v": { "val": 3907.44, "ack": true, "ts": 1689774913683, "q": 0, "from": "system.host.17e9c2544f30", "lc": 1689774913683 } }
Vielleicht läuft ja nur der Webservice nicht, aber die MQTT Nachrichten kommen weiterhin rein. Eine Idee wie ich das prüfen kann bevor ich alles platt mache?
-
@tasuanetrukiat sagte in Bekomme ioBroker im Docker nicht restauriert:
Mal sehen wie ich die Datei sauber in das Image vor dem neuen ersten docker run … bekomme.
Diese Funktionalität wurde mit dem 8er Image entfernt, den Versuch kannst du dir sparen.
https://github.com/buanet/ioBroker.docker/blob/main/CHANGELOG.md#v800-20032023Ggf. heißt der Host anders als vorher, das müsstest du mit
iobroker host this
fixen, gefolgt von einem
iobroker start all
-
@marc-berg sagte in Bekomme ioBroker im Docker nicht restauriert:
iobroker host this
Es war mir nicht möglich den iobroker regulär mit einem iobroker stop all so zu stoppen das der iobroker host this funktioniert hätte.
Erst nach ein kill auf den Prozess 136 war dann der Befehl erfolgreich.
Es sah aber so aus als würde vorher auch schon der name des host „iobroker“ gewesen sein.
Der Start danach hat jederfalls funktioniert und es wurden mehr Adapter gestartet als vorher gestoppt wurden.root@docker:~# docker exec -it iobroker iobroker stop all root@docker:~# docker exec -it iobroker iobroker host this Cannot execute changes on running system. Stop iobroker first. root@docker:~# docker exec -it iobroker kill 136 root@docker:~# docker exec -it iobroker iobroker host this Host "17e9c2544f30" successfully renamed to "iobroker". The host for instance "system.adapter.admin.0" was changed from "iobroker" to "iobroker". The host for instance "system.adapter.discovery.0" was changed from "iobroker" to "iobroker". The host for instance "system.adapter.backitup.0" was changed from "iobroker" to "iobroker". The host for instance "system.adapter.history.0" was changed from "iobroker" to "iobroker". The host for instance "system.adapter.jarvis.0" was changed from "iobroker" to "iobroker". The host for instance "system.adapter.javascript.0" was changed from "iobroker" to "iobroker". The host for instance "system.adapter.javascript.1" was changed from "iobroker" to "iobroker". The host for instance "system.adapter.mqtt.0" was changed from "iobroker" to "iobroker". The host for instance "system.adapter.valuetrackerovertime.0" was changed from "iobroker" to "iobroker". The host for instance "system.adapter.vis-history.0" was changed from "iobroker" to "iobroker". The host for instance "system.adapter.vis.0" was changed from "iobroker" to "iobroker". The host for instance "system.adapter.web.0" was changed from "iobroker" to "iobroker". root@docker:~# docker exec -it iobroker iobroker start all The adapter "admin.0" was started. The adapter "history.0" was started. The adapter "javascript.0" was started. The adapter "javascript.1" was started. The adapter "mqtt.0" was started. The adapter "discovery.0" was started. The adapter "backitup.0" was started. The adapter "jarvis.0" was started. The adapter "valuetrackerovertime.0" was started. The adapter "vis-history.0" was started. The adapter "vis.0" was started. The adapter "web.0" was started. root@docker:~# docker exec iobroker top -b top - 19:28:46 up 14 days, 8:48, 0 users, load average: 0,03, 0,07, 0,03 Tasks: 5 total, 1 running, 4 sleeping, 0 stopped, 0 zombie %Cpu(s): 0,0 us, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st MiB Mem : 1960,2 total, 197,8 free, 178,5 used, 1583,9 buff/cache MiB Swap: 4096,0 total, 4095,7 free, 0,2 used. 1751,0 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 7372 3512 3156 S 0,0 0,2 0:00.05 bash 716337 root 20 0 10176 3616 3212 S 0,0 0,2 0:02.68 top 716357 root 20 0 10176 3704 3296 S 0,0 0,2 0:02.56 top 729232 root 20 0 5740 500 436 S 0,0 0,0 0:00.01 tail 729618 root 20 0 10176 3600 3200 R 0,0 0,2 0:00.02 top
Leider ist kein Prozess zu sehen wie vor dem kill und der Browser meldet auch nur „This site can’t be reached“
Vielleicht muss ich nun einfach warten, aber wäre schon schön man könnte irgendwo etwas sehen. -
@tasuanetrukiat Ich hatte noch mal einen
root@docker:~# docker exec -it iobroker iobroker fix
laufen gelassen.
Danach hat sich immer noch nichts getan, also habe ich mitroot@docker:~# docker container stop cbb675da5a5d root@docker:~# docker container start cbb675da5a5d
den Container noch mal neu gestartet. Danach hat es ein wenig gedauert aber das Web-Interface ist seit dem wieder erreichbar und es scheint auf den ersten Blick alles zu laufen.
Ich werde mal ein neues Backup ziehen und in einem anderen Container das nochmal versuchen zu repizieren damit man weis was wirklich notwendig war.
Danke für die Hilfe.
-
@tasuanetrukiat sagte in Bekomme ioBroker im Docker nicht restauriert:
Es sah aber so aus als würde vorher auch schon der name des host „iobroker“ gewesen sein.
Nö.
Host "17e9c2544f30" successfully renamed to "iobroker".
-
@marc-berg Ah ok. Die Zeile hatte ich glatt überlesen.