NEWS
JS-Controller Update auf Synology NAS unter Docker
-
-
habe das eigentlich schon 2 mal hinbekommen seit IoBroker im Docker läuft aber diesmal nicht mehr!
Ich mache mit Portainer eine Console auf um dort dann mit "pkill io" den IoBroker zu stoppen um danach dann den JS Controller upzudaten.
Nachdem ich aber den "pkill io" absende schließt er mir die Console gleich wieder und startet IoBroker im Docker neu!!!
Somit kann ich keine weitere Befehle senden.root@iobroker:/opt/iobroker# nodejs -v v12.20.2 root@iobroker:/opt/iobroker# node -v v12.20.2 root@iobroker:/opt/iobroker# npm -v sudo: Hostname iobroker kann nicht aufgelöst werden: Der Name oder der Dienst ist nicht bekannt 6.14.11 root@iobroker:/opt/iobroker#
der Fehler bei NPM ist auch nicht normal oder?
möchte gerne den Master hochziehen um den Slave upzudaten.
-
pkill -u iobroker
iobroker update
iobroker upgrade selfhttps://smarthome.buanet.de/2020/10/iobroker-docker-container-updates-upgrades/
-
@dslraser sagte in JS-Controller Update auf Synology NAS unter Docker:
pkill -u iobroker
iobroker update
iobroker upgrade selfhttps://smarthome.buanet.de/2020/10/iobroker-docker-container-updates-upgrades/
Danke, funktioniert!
-
Ich habe auch gerade versucht das Update des js-controller zu machen. (Synology Docker)
Leider bekomme ich folgende Fehlermeldung:Update js-controller from @3.1.6 to @3.2.16 NPM version: 6.14.11 npm install iobroker.js-controller@3.2.16 --loglevel error --unsafe-perm --prefix "/opt/iobroker" (System call) npm ERR! code EEXIST npm ERR! path /opt/iobroker/node_modules/iobroker.js-controller/node_modules/.bin/mkdirp npm ERR! Refusing to delete /opt/iobroker/node_modules/iobroker.js-controller/node_modules/.bin/mkdirp: is outside /opt/iob roker/node_modules/iobroker.js-controller/node_modules/mkdirp and not a link npm ERR! File exists: /opt/iobroker/node_modules/iobroker.js-controller/node_modules/.bin/mkdirp npm ERR! Remove the existing file and try again, or run npm npm ERR! with --force to overwrite files recklessly. npm ERR! A complete log of this run can be found in: npm ERR! /opt/iobroker/.npm/_logs/2021-03-02T09_01_31_301Z-debug.log Starting node restart.js
EDIT: Hat sich erledigt. Mein Container hat durch eine falsche UID zu wenig Berechtigungen gehabt.
-
@airmaxchen kannst Du ein paar mehr Details zu Deiner Lösung geben? n welcher Stelle hast Du die UID angepasst? Ich habe das gleiche Problem, aber wohl noch nicht die richtige Stelle für das Anpassen der UID gefunden.
-
ich kann mir nicht vorstellen , das durch eine Änderung der UID dieser Fehler dann weg war .
Denn der JS ist laut Log außerhalb des richtigen Verzeichnisses zuvor installiert und das sollte dann nach Anweisung gemacht werden :
is outside /opt/iob ... npm ERR! Remove the existing file and try again, or run npm npm ERR! with --force to overwrite files recklessly.
-
@glasfaser da ich den Standard buanet container hier benutzt habe, wundert mich dass mit dem "ausserhalb des richtigen Verzeichnisses" etwas. "/opt/iobroker" wird bei mir in ein anderes Verzeichnis gemountet, daher klang das mit den Verzeichnisrechten im ersten Moment nach einer potentiellen Lösung...
Zu dem nach Anweisung machen:
Ich hatte die Meldung zuerst für "/.bin/iobroker" und nachdem ich die gelöscht hatte für "/.bin/semver" und hab dann nicht weiter datei für datei gelöscht in der Hoffnung dass es irgendwann geht.
Für mich klingt das nach was allgemeinerem dass ich mit einzelnem Löschen nicht unbedingt löse.Ich versuche auch die Meldung richtig zu verstehen.
"/opt/iobroker/node_modules/.bin/iobroker: is outside /opt/iobroker/node_modules/iobroker.js-controller"
klingt ziemlich einleuchtend.
Der Teil am Ende "and not a link" verwundert mich aber, da in iobroker "../iobroker.js-controller/iobroker.js" steht und damit doch nach Link aussieht.Was übersehe ich?
-
@kefut Ich habe gesehen, dass mein admin-Account auf der Syno die uid=1026 hat, aber bei den Umgebungsvariablen im Docker-Container unter SETUID etwas anderes gestanden ist (ich weiß nicht mehr was). Ich habe dort dann SETUID auf 1026 geändert und das JS-Controller Update hat funktioniert.
-
@airmaxchen Das SETUID hat aber soweit ich das verstehe Einfluss auf den iobroker user. Das update führst du aber unter root aus - und root sollte ja eigentlich alles dürfen. Ich werde nicht schlau daraus...
-
@kefut Ehrlich gesagt habe ich es einfach versucht weil ich durch diesen Thread (Synology Forum) auf die Idee gekommen bin und damit hat es funktioniert.
Außerdem hat es das Problem behoben, dass ich Adapter nicht deinstallieren konnte. Das gab immer eine Fehlermeldung und seit dem nicht mehr.
-
@airmaxchen
Bei mir steht im Docker auch die UID 1000 und mein Account hat die 1024.
Wo und Wie kann ich die in eine andere ändern? -
@ostseeskipper Wenn der Container nicht läuft kann man in der Containerübersicht den Container "Bearbeiten".
Darin dann sieht man unter "Umgebung" einige Variablen. Darunter auch SETUID. -
@airmaxchen
Ahh super.
Bin bisher nur bis zu den Ports gekommen.
Danke.... und nun hat auch das update geklappt.
-
Hi, wie mach ich das denn auf der SYN im Docker?
Sobald ich den IO Service stoppe mit pkill io , stoppt auch der Docker automatisch und dann kann nicht natürlich den IOBroker upgrade self befehlt nicht mehr ausführen
-
@olli_m sagte in JS-Controller Update auf Synology NAS unter Docker:
mit pkill io
damit stoppen :
pkill -u iobroker
-
you are the best
-
... aber nicht wie oben angegeben mit "iobroker start" , sondern den Container anschließend neu starten !