NEWS
Probleme beim ioBroker-Update von docker v7 auf v8
-
@haselchen Danke für die Idee. Ich teste es die Tage und melde mich dann.
-
@blackbeard sagte in Probleme beim ioBroker-Update von docker v7 auf v8:
Wenn ich im docker compose file die Imageversion auf latest-v8 ändere und den Container neu erstelle, dann kann der neue Container nicht mehr auf die Daten der v7 zugreifen und der ioBroker startet nicht.
Wenn ich einen leeren Datenpunkt konfiguriere, dann startet der neue v8-ioBroker problemlos. Dann habe ich versucht per Backitup die Daten neu zu importieren. Auch dieser Versuch ist fehlgeschlagen.Meine Erfahrung mit den Docker-Image-Updates ist die, dass das Hochdrehen der Image-Version im Docker Compose bislang immer völlig problemfrei funktionierte, WENN man vorher den js-controller auf die aktuelle Version gehoben hat. Zu diesen Versionen hast du noch nichts geschrieben, ebenso zum "Unterbau".
Mit diesem Vorgehen ist man in unter einer Minute auf der neuen Image/Node.js Version, ohne Verzeichnisse kopieren zu müssen. Ob das auf einem NAS auch so funktioniert, kann ich allerdings nicht sagen.
-
Vorab danke für die Ideen.
Zu meiner Hardware:
HP Proliant DL380 Gen8
Plattform: docker
Betriebssystem: linux Debian Buster
Architektur: x64
CPUs: 12
Geschwindigkeit: 1995 MHz
Modell: Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz
RAM: 47 GB
Node.js: v16.20.2 (Empfohlene Version v18.18.2)
NPM: 8.19.4
Anzahl der Adapter: 507
dockerInformation: [object Object]
Datenträgergröße: 272.98 GB
freier Festplattenspeicher: 97.23 GB
Aktive Instanzen: 19
Pfad: /opt/iobroker/ -
@marc-berg Ich habe jetzt ein Nodejs Update gemacht. Die ioBroker-Übersicht zeit in der Info jetzt:
...
Plattform: docker (official image - v7.2.0)
Node.js: v18.18.2
NPM: 9.8.1
...Aber wenn ich jetzt das Composefile von Imageversion latest 7 auf latest 8 ändere und den Container neu starte, dann erhalte ich folgende Ausgabe im Log von Portainer:
----- Welcome to your ioBroker Docker container! -----
----- Startupscript is now running! -----
----- Please be patient! -----
----- System Information -----
----- arch: x86_64 -----
----- hostname: ioBroker-Master -----
----- Version Information -----
----- image: v8.1.0 -----
----- build: 2023-09-21T23:45:30+00:00 -----
----- node: v18.17.1 -----
----- npm: 9.6.7 -----
----- Environment Variables -----
----- DEBUG: false -----
----- SETGID: 1000 -----
----- SETUID: 1000 -----
----- Step 1 of 5: Preparing container -----
Updating Linux packages on first run... Done.
Registering maintenance script as command... Done.
----- Step 2 of 5: Detecting ioBroker installation -----
Existing installation of ioBroker detected in "/opt/iobroker".
----- Step 3 of 5: Checking ioBroker installation -----
(Re)setting permissions (This might take a while! Please be patient!)... Done.
Fixing "sudo-bug" by replacing sudo with gosu... Done.
Checking Database connection... Failed.
Please check your configuration and try again.
For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs).This Script will exit now.
-
@haselchen Ich habe den momentanen Container umbenannt und gestoppt. Dann das Datenverzeichnis umbenannt und ein neues, leeres Datenverzeichnis erstellt. Dann das Composefile auf v8 geändert und einen neuen Container erstellt. Diesen dann wieder gestoppt, das alte Datenverzeichnis wieder in den notwendigen Namen umbenannt und den v8-Container neu gestartet.
Mit folgender Ausgabe:
...----- Step 3 of 5: Checking ioBroker installation -----
(Re)setting permissions (This might take a while! Please be patient!)... Done.
Fixing "sudo-bug" by replacing sudo with gosu... Done.
Checking Database connection... Failed.
Please check your configuration and try again.
For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs).This Script will exit now.
Ich bin echt ratlos.
-
Puh, auf welcher Hardware bist Du unterwegs ?
Bin leider nicht mehr Up to Date in dem Thread. -
hast du ein
depends_on:eingebaut, evtl ist iobroker container schneller wie der datenbank container?
was sagt das log des datenbank containers
dürfen wir dein docker compose sehen? -
@oliverio Nö hab nix eingebaut
Hier der Inhalt meiner docker compose files:
version: "3"services:
ioBroker:
container_name: ioBroker
environment:
- DEBIAN_FRONTEND=teletype
- DEBUG=false
- LANG=de_DE.UTF‑8
- LANGUAGE=de_DE:de
- LC_ALL=de_DE.UTF‑8
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- SETGID=1000
- SETUID=1000
- TZ=Europe/Berlin
hostname: ioBroker-Master
image: iobroker/iobroker:latest-v8ports:
- 1883:1883/tcp
- 1882:1882/tcp
- 80:80/tcp
- 8081:8081/tcp
- 8082:8082/tcp
- 8087:8087/tcp
- 9001:9001/tcp
- 9002:9002/tcp
restart: unless-stopped
stdin_open: true
tty: true
volumes:
- Datenverzeichnis_auf_dem_Server:/opt/iobroker
working_dir: /opt/iobrokernetworks:
host:
external: trueLäuft aber nicht. Bisher habe ich auch keinen externen Datenbankcontainer eingerichtet. Wäre es sinnvoll das zu machen?
-
@blackbeard
und wo hast du zuvor deine states und objects gespeichert?
datenbank, redis, jsonl? -
@OliverIO
da meine Installation ursprünglich mit einem Raspberry angefangen hat, liegen alle Daten im ioBrokerverzeichnis. Bisher habe ich keine gesonderte Datenbank eingerichtet. -
@andre
Du kennst mich nicht. Aber ich finde es klasse, dass du das dockerimage so regelmäßig bereitstellst.
Wie im Thema erwähnt, kann ich kein Update von v7 auf v8 durchführe, da beim Erstellen des Containers Schritt 3 fehlschlägt:
----- Step 3 of 5: Checking ioBroker installation -----
(Re)setting permissions (This might take a while! Please be patient!)... Done.
Fixing "sudo-bug" by replacing sudo with gosu... Done.
Checking Database connection... Failed.
...Ich benutze ein composefile, dass ich weiter oben auch schon gepostet habe.
Hats du ein Idee, wo der Fehler liegt? Bzw. wie ich dem Problem auf die Schliche komme?Grüße
Christian -
@blackbeard sagte in Probleme beim ioBroker-Update von docker v7 auf v8:
Ich habe jetzt ein Nodejs Update gemacht. Die ioBroker-Übersicht zeit in der Info jetzt:
...
Plattform: docker (official image - v7.2.0)
Node.js: v18.18.2
NPM: 9.8.1Von einem Node.js Update hatte niemand etwas gesagt, weiß nicht, ob das jetzt kontraproduktiv war. Eine entscheidende Info hast du uns noch vorenthalten: welche Version hat der js-controller?
-
@blackbeard sagte in Probleme beim ioBroker-Update von docker v7 auf v8:
@OliverIO
da meine Installation ursprünglich mit einem Raspberry angefangen hat, liegen alle Daten im ioBrokerverzeichnis. Bisher habe ich keine gesonderte Datenbank eingerichtet.hm, dann verstehe ich die Meldung nicht mit connection failed
im dockerfile ist nix mit datenbank konfiguriert,
wenn du keine besondere datenbank im iobroker konfiguriert hast,
dann läufen die objects und states auf jsonldu könntest den container mal auf debug stellen und schauen was dann im log steht
bzw. dann auch mal ins iobroker log, falls es das da überhaupt schon gibt.ich weiß jetzt nicht ob du hier auf basis bereits existierender volumes ein update machst
die folgenden Zeilen scheinen ja von dir angepasst worden sein, sie entsprechen nicht dem korrekten format- Datenverzeichnis_auf_dem_Server:/opt/iobroker working_dir: /opt/iobroker
kann aber sein, das, weil du vergessen hast das in code tags zu setzen, die formatierung zerhauen hat
wenn du von einer vorhandenen installation upgradest, würde ich lieber in dem alten container ein backup machen und das in einem neuen cleanen container dann einspielen
-
@oliverio
Ja. Habe keine code tags verwendet.
Das composefile an sich funktioniert wie es soll.
Tatsächlich stoppe ich vor jedem Update den container, mache vom Datenverzeichnis eine Kopie, starte den container wieder und führe das Update durch.Der container lässt sich mit leeren Datenverzeichnis auch ohne Murren mit neuer Version starten. Erst wenn ich meine Daten einfüge, dann wird eine vorhandene Installation erkannt und er baut eben keine Verbindung zur Datenbank auf. Ich hatte auch versucht, per BackitUp die Daten wieder herzustellen. Aber eben auch ohne Erfolg.
Ich frage mich, was die Installationsroutine da in Schritt 3 macht bzw. sucht dass meine Daten (die vorhanden sind) nicht gefunden werden?
-
aber wenn du keine datenbank verwendest, wohin soll er kontakt aufnehmen?
-
@oliverio
Ja genau. Und an dieser Stelle finde ich keine Lösung. Was die Datenbank angeht, ist ja alles in Standardkonfiguration. Daher kann ich mir nicht vorstellen, warum die Installation keine Verbindung zu den Daten herstellen kann.
Einzige Idee die ich noch habe, wäre eine Diskrepanz mit Benutzerrechten.
Aber da weiß ich gerade auch nicht wo ich wie ansetzen sollte.Daher hatte ich gehofft, dass hier im Forum jemand eine hilfreiche Idee hat oder der Image Ersteller (@andre) die Lösung parat hat.
-
@marc-berg
Ich hatte node.js auch schon händisch upgedatet und dann versucht das neue Image zu starten. Hat aber keine Veränderung gebracht. Immer das selbe Verhalten. Aktuell läuft v16.20.2, da nach erneuten Erstellen des Containers immer wieder die Version des Images benutzt wird. Daher ließt man auch in der Beschreibung, dass eigentlich nur ein neuer Container mit aktuellem Image gestartet werden sollte und dann alles wieder schick ist. Aber aktuell eben bei mir leider nicht. -
@blackbeard Hattest du dein Datenverzeichnis schonmal mit v9 genutzt?
-
@blackbeard sagte in Probleme beim ioBroker-Update von docker v7 auf v8:
Aktuell läuft v16.20.
Dann wiederhole ich meine Frage nochmals: welche Version hat der js-controller? Könnte es sein, dass du "js-controller" und "node.js" durcheinanderwirfst?
-
@marc-berg sagte in Probleme beim ioBroker-Update von docker v7 auf v8:
@blackbeard sagte in Probleme beim ioBroker-Update von docker v7 auf v8:
Aktuell läuft v16.20.
Dann wiederhole ich meine Frage nochmals: welche Version hat der js-controller? Könnte es sein, dass du "js-controller" und "node.js" durcheinanderwirfst?
ich glaube ja eher an so etwas