NEWS
Node und JS-Controller Udpate im Docker
-
Weil stretch end of life ist und unter diesem Pfad die Daten nicht mehr verfügbar sind
https://unix.stackexchange.com/questions/371890/debian-the-repository-does-not-have-a-release-file
Bitte hier nicht weiter rumdoktern
Selbst wenn du das hinbekommst ist die Änderung nicht dauerhaft.
Alles was nicht in einem Volumen enthalten ist, ist nach der nächsten Regeneration des Containers wieder weg.
Das gehört zu den Basis Konzepten von Containern
Container sind keine VM -
Danke Dir.
Ich kann ja nun aber nicht einfach ein neues Image ziehen und den Mount Ordner verlinken. Die Versionen (e.g. JS Controller) werden sich ja beissen oder ?
Und auch ein Backup kann ich so ja nicht einfach einspielen oder? -
@sali84
Probieren kannst du das schon. -
Hmm. Hatte halt nur gelesen, dass man bei einem Container wechsel sicherstellen soll das der Controller up to date ist.
Nicht, dass danach gar nichts mehr funktioniert.
Zudem würde der Controller, selbst wenn es funktioniert dann ja immer noch auf der alten Version sein oder ?
Aber vermutlich meinst du, dass die Update Befehle dann wieder gehen....Kann man nicht die Links zu Debian aufs Archiv einfach anpassen, damit das Update auf dem aktuellen System funktioniert ?
-
@sali84 sagte in Node und JS-Controller Udpate im Docker:
Kann man nicht die Links zu Debian aufs Archiv einfach anpassen, damit das Update auf dem aktuellen System funktioniert ?
Nein, das widerspricht der Verwendung eines Containers. Die Dinger sind Wegwerfartikel. Und Stretch ist schon geraume Zeit abgekündigt, kein Wunder das die Links nun ins Leere laufen. Häufiger Updaten und die Software aktuell halten.
-
@Thomas-Braun : Du hast Recht, war mein Versäumnis
Ich habe ein neues Image gezogen und der Container steht mit dem alten Mount bereit. Aber wenn ich den nun starte, sollte der Controller ja noch alt sein.
Und ein zurück zum alten Container, im Fall es geht etwas schief, geht ja dann auch nicht mehr oder? -
@sali84
Nein, der Container ist kein VM
Im Container ist das Betriebssystem und Node nun aktuell
Ich vermute mal das du mit Mount das Volumen meinst?
Wenn ja dann entspricht das Volumen alles was sich unterhalb von /opt/iobroker befindet.
Also der iobroker in alter Version. Das aktualisierst du zunächst die Adapter und wenn das abgeschlossen ist aktualisierst du den js-controller mit den Befehlen die du eingangs hier schon gepostet hast.
Falls das nicht funktioniert, dann musst du ggfs stufenweise aktualisieren.
Bei dem Befehl kann man auch die versionsnummer angeben.
Da gibst du dann jeweils die letzte offizielle Version für jede Major Version an.
Das machst du dann der Reihe nach bis du die aktuelle Version erreicht hast.
Es kann sein das man sich mehrere Versionen überspringen kann aber das musst du ausprobieren -
Habe nun das 7.X Image im neuen Container zum Laufen gebracht. Habe den Mount Ordner (opt/iobroker) vorher kopiert und auf den Kopie Ordner verwiesen. So kann ich probieren.
Es scheint zu laufen, allerdings erreiche ich die Admin Oberfläche (Err connection refused) nicht mehr. Adapter sehen wie folgt aus, einzelne Adapter habe ich bereits geupdated. Habt ihr eine Idee?Adapter "admin" : 6.13.16 , installed 6.13.16
Adapter "alexa2" : 3.26.4 , installed 3.23.2 [Updatable]
Adapter "backitup" : 2.10.11 , installed 2.5.4 [Updatable]
Adapter "discovery" : 4.4.0 , installed 2.8.0 [Updatable]
Adapter "history" : 3.0.1 , installed 1.11.1 [Updatable]
Adapter "hm-rega" : 4.0.0 , installed 3.0.47 [Updatable]
Adapter "hm-rpc" : 1.16.0 , installed 1.17.0
Adapter "iot" : 2.0.11 , installed 1.11.9 [Updatable]
Adapter "javascript" : 7.8.0 , installed 5.8.10 [Updatable]
Controller "js-controller": 5.0.19 , installed 4.0.24 [Updatable]
Adapter "knx" : 2.0.24 , installed 1.0.45 [Updatable]
Adapter "mihome-vacuum": 4.1.1 , installed 3.11.0 [Updatable]
Adapter "radar2" : 2.1.0 , installed 1.2.5 [Updatable]
Adapter "scenes" : 2.3.9 , installed 2.4.2
Adapter "simple-api" : 2.7.2 , installed 2.7.2
Adapter "socketio" : 6.6.1 , installed 3.1.5 [Updatable]
Adapter "sonos" : 3.0.0 , installed 2.3.3 [Updatable]
Adapter "telegram" : 3.1.0 , installed 1.15.2 [Updatable]
Adapter "text2command" : 3.0.3 , installed 2.2.2 [Updatable]
Adapter "tuya" : 3.15.0 , installed 3.13.1 [Updatable]
Adapter "vis" : 1.5.4 , installed 1.5.4
Adapter "weatherunderground": 3.6.0, installed 3.4.2 [Updatable]
Adapter "web" : 6.2.3 , installed 5.4.0 [Updatable]
Adapter "ws" : 2.5.11 , installed 2.3.3 [Updatable] -
Versuch per Konsole die Adapter upzudaten.
Den JSController zuerst.
Aber das Image ist alt , wieso hast du es installiert ? -
@haselchen weil ich sicherstellen wollte, dass sich die JS Controller Versionen nicht "beisen". Daher der Zwischenschritt. Bin am updaten. JS Controller ist nun updated. Leider keine Verbesserung ....
-
Inzwischen bin ich soweit, dass folgende Meldung kommt:
Diese Website kann keine sichere Verbindung bereitstellen192.168.x.x erfüllt die Sicherheitsstandards nicht.
ERR_SSL_SERVER_CERT_BAD_FORMATCertificate habe ich mit dem create Befehl bereits erzeugt.
Schon sehr spannend, wie viele Probleme man so haben kann...... Danke für eure Hilfe
-
Nach einigen "Probieren" konnte dann der Container nicht mehr gestartet werden. Also so komme ich da nicht wirklich weiter, da fehlt mir einfach das Wissen. Wäre dankbar, wenn mir jemand helfen könnte....
-
Vielleicht solltest Du mal Schritt für Schritt zeigen wie Du Deinen Container mit welchen Einstellungen installierst .
-
@haselchen klar gerne. Bin ja um jede Hilfe dankbar.
Hier die Screenshots.
-
@sali84
Das wäre das rumdoktern -
-
Jetzt scheint es zu funktionieren.
Für alle die über mehrere Image Versionen hinweg Udpaten möchten und dabei den Mount Ordner bestehen lassen wollen ---> lasst es lieber sein. Es hat mich Stunden gekostet und es läuft einfach unheimlich instabil.
Lösung ist, das Image mit dem Mount irgendwie kurz zum Laufen zu bringen und dann asap Backitup zu nutzen und dann ein ganz neues Image mit neuem Mount anlegen.Weiterhin schöne Ostern euch...
-
Einfacher Weg um Node.js im Docker auf den neuesten Stand zu bringen ohne alles neu aufsetzen zu müssen...
- Zuerstes ioBroker im Container stoppen und gegebenfalls npm updaten:
pkill -u iobroker npm -i -g npm@latest
- falls noch nicht gemacht (!!!) den Versionsmanager installieren (kann später weggelassen werden):
npm install -g n
- dann Node.js upgraden (neueste Version):
n latest
- bzw. (gewünschte Versionsnummer):
n versionsnummer
- Zuletzt ioBroker neu starten...
iobroker start
Diesen Weg benutze ich immer und es funktioniert hervorragend!
-
@bernd-röske
Liest Du eigentlich einen Thread durch bevor Du postest? Falls nein, empfehle ich mal den 2. Beitrag genau zu lesen.@oliverio sagte in Node und JS-Controller Udpate im Docker:
Nur als kleiner Hinweis
Node im Container nicht über die üblichen Befehle aktualisieren.
Node und das Container Betriebssystem wird nur dirch die Verwendung eines aktuellen Containers aktualisiert. -
@bernd-röske
Das wird nicht per
n
gemacht. Und auch nicht pernpm -i
oder sonst wie an allem vorbei.