NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@duffbeer2000 Sorry, dass ich mich lange nicht gemeldet habe und dass es teilverwirrt (oder -verwirrend) war.
Heute hatte ich endlich wieder mal Zeit und hab' mich mal weiter vorgetastet: Jetzt weiß ich immerhin, wie man das Backup von ioBroker anwirft, das Verzeichnis iobroker-data samt versteckter Daten kopieren/sichern kann und ich habe es geschafft unfallfrei auf Node.js v10.21.0 und JS-Controller 3.1.6 upzudaten. Das gibt erstmal etwas Sicherheit...
Danke für deine Infos hierzu!Bevor ich auf die neue Image-Version 5.0.0 (oder gleich 5.0.1, sobald stable) update, versuche ich erstmal noch die 4.2.0 mit nem neuen Container zu versehen. Dabei will ich zusätzlich auch noch ein weiteres Host-Verzeichnis zwecks Datenaustausch mit nem eigenen Docker-Container (E3DC-Control) eines Vis-Projekts mappen.
volumes: - "/home/pi/docker-data/iobroker-data:/opt/iobroker" - "/home/pi/docker-data/e3dc-control/config:/home/iobroker/e3dc-config-transfer"
Ich baue ja die Container ioBroker, MySQL und phpMyAdmin mit einer Docker-Compose-Datei. Da wird es nicht reichen nur den ioBroker-Container zu löschen? Ich muss wahrscheinlich alle drei Container löschen und dann die Compose-Datei ausführen, oder?
-
Hallo,
ich habe die 5.0.0 seit einigen Tagen im Host-Modus laufen. Funktioniert soweit. Heute wollte ich allerdings einen Adapter neu installieren. Dabei bekam ich dann folgende Anzeigen:
Sprich der Hostname kann nicht aufgelöst werden.
Ein "iobroker host this" kann ich leider nicht durchführen, weil ich dazu den ioBroker stoppen müsste, aber dann ja nicht mehr ins Terminal komme.
Jemand eine Idee?
-
Ist doch erfolgreich durchgelaufen.
Die Nichtauflösung habe ich auch, aber trotzdem läuft und installiert Iobroker alles.Ansonsten , wenn es Dich stört und host this überhaupt was bringt, könnte man mit Putty arbeiten.
-
@dtp
Sehr wohl kannst du im terminal den iobroker stoppen, versuche mal 'pkill io'.
Anschliessend dein 'host this...' im terminal.
Zum starten den ganzen container neu starten.
Ich denke du hast irrtümlich 'Container anhalten' verwechselt mit 'iobroker anhalten'. -
Kleine Anmerkung
Überarbeitung am 06.06.2020
Der Befehl zum Beenden des ioBrokers im Container wurde angepasst. Der bisherige Befehl „pkill io“ funktioniert seit Node 12 leider nicht mehr. -
@dtp sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Sprich der Hostname kann nicht aufgelöst werden.
Das ist ein alter Hut und daran wird sich nichts ändern bis der DSM eine aktuellere Kernel Version verwendet. Ohne Host Modus passiert das nicht.
Ich kann da persönlich nichts machen. Sorry.MfG,
André -
@haselchen Korrekt. Bitte pkill -u iobroker oder pkill node verwenden.
MfG,
André -
@andre sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Das ist ein alter Hut
Okay. Heißt dann im Umkehrschluss, auch ein
pkill -u iobroker iobroker host this
würde nichts bewirken, oder? Da die Adapter ja erfolgreich installiert werden, dürfte es aber nicht so dramatisch sein. Dann lebe ich vorerst mit der Fehlermeldung.
-
@DrFirebird
hi!
nein, auf einer 214er läufts nicht, nur auf + nasen.
auf der syno page gibts aber auch eine liste auf welchen docker läuft.
wenns nicht angezeigt wird, wirds auch nicht unterstützt. -
Hi zusammen. Ich habe seit einem Stromausfall irgendwie probleme. Ich komme gar nicht mehr auf die web oberfläche vom iobroker.
Laut dem Error log gibt es irgendwie probleme mit dem jscontroller.
Ich hoffe es kann mir jemand tipps geben wo das problem liegt ?
-
Das einfachste wäre wohl, den Container zu löschen und neu anzulegen. Ist ja ne Sache von fünf Minuten.
-
@dtp kannst du mir sagen wie ich das mache ?
-
Hast du den Container über MACVLAN laufen oder als Host bzw. Bridge? Nutzt du den Portainer?
Ich habe mich nach einigen Schwierigkeiten mit dem Portainer und MACVLAN dagegen und für die Konfiguratin über den Docker im Host-Modus entschieden. Da geht's dann sehr einfach und schnell.
-
Der Container ist quasi nach wie vor noch nach der ganz alten Anleitung eingerichtet. Also ganz normal im Host Modus.
-
Hi, ich habe seit einiger Zeit den ioBroker auf meinem Synology in Betrieb. Jetzt habe ich aber Probleme mit den Updates. Das Update des js-controllers (Version 3.1.6) kann ich über die Konsole des Portainers durchführen, es wird kein Fehler angezeigt. Nach einem Neustart des Containers wird jedoch wieder Version 3.0.19 angezeigt. Auch die Adapterupdates werden ausgeführt, nach Abschluss sind die Adapter jedoch wieder updatebar. Ich habe bereits ein recreate in Portainer versucht mit einem pull des aktuellsten Images. Das brachte jedoch keine Änderung.
Hat jemand einen Tipp, wie ich das beheben kann? -
@dtp Sorry lese jetzt erst mal wieder richtig. Du meinst wenn ich eine anderen Container nutze könnte das Problem mit dem js Controller behoben sein ?
-
Leider hat es aber keine Abhilfe geschaffen
-
Ok mit hilfe von Facebook Kommentaren habe ich meine Iobroker zumindest wieder zum leben erweckt. Ich habe ein Backup von dieser Nacht eingespielt.
Doch zwei Fragen habe ich,evtl kannst du @andre mir einen Tipp geben wo ich ein Problem haben könnte. Laut den Logs vom Docker container bekomme ich seit dem 23.06 immer die selbe Fehler meldung.
Was auch komisch zu früher ist. Ich muss auch ungefähr seit dem Zeitpunkt das Phänomen das ich den ioBroker immer über den Terminal mit iobroker start starten muss.
Hast du eine Idee was das Problem sein könnte ?
Update: Also was definitv zu Problemen führt ist wenn man versucht folgendes zu nutzen : https://buanet.de/2020/02/usb-devices-im-iobroker-docker-container-nutzen/
Sobald ich die Befehlszeile nutzen möchte laufen folgende Prozesse im Container:
Wenn ich im Terminal dann iobroker start eingeben kommt der Fehler das der Prozess bereits läuft.
Nutze ich die möglochkeit nicht den USB durchzuschleifen kann ich mit dem iobroker start Befehl den iobroker auch wirklich starten...
Dazu muss ich sagen ich im prinzip noch die Oldschool Variante nutze ohne Portainer oder ähnliches.
-
Ich habe mich auch mal an die V5 (aktuelle Beta) gewagt.
Erstmalig habe ich den Weg über ein leeres Verzeichnis mit einem Backup-File gewählt.
Hat dann gut 1 Stunde gedauert, bis alles installiert war.Auf den ersten (vielleicht auch schon 2.) Blick scheint alles wie gewohnt zu funktionieren.
Vielen Dank an @andre für deine Arbeit.
Bei der Adapterinstallation ist mir folgendes aufgefallen:
Es wird bei jedem Adapter folgender Fehler angezeigtNPM version: 6.14.5 npm install iobroker.hm-rpc@1.14.14 --loglevel error --prefix "/opt/iobroker" (System call) In file included from ../authenticate_pam.cc:23:../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ ../authenticate_pam.cc: In function ‘void after_doing_auth(uv_work_t*, int)’:../authenticate_pam.cc:107:87: warning: ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(Nan::GetCurrentContext()->Global(), Nan::New(m->callback), 1, args); ^In file included from ../authenticate_pam.cc:23:../../nan/nan.h:1026:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ ../authenticate_pam.cc:107:87: warning: ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(Nan::GetCurrentContext()->Global(), Nan::New(m->callback), 1, args); ^In file included from ../authenticate_pam.cc:23:../../nan/nan.h:1026:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ ../authenticate_pam.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE Authenticate(Nan::NAN_METHOD_ARGS_TYPE)’:../authenticate_pam.cc:147:83: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations] Local<Value> res = options->Get(Nan::New<String>("serviceName").ToLocalChecked()); ^In file included from /opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8-internal.h:14, from /opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8.h:27, from /opt/iobroker/.cache/node-gyp/12.18.2/include/node/node.h:67, from ../../nan/nan.h:56, from ../authenticate_pam.cc:23:/opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8.h:3553:51: note: declared here V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key)); ^~~/opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’ declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../authenticate_pam.cc:150:69: error: no matching function for call to ‘v8::String::WriteUtf8(char [128], long unsigned int)’ serviceName->WriteUtf8(m->serviceName, sizeof(m->serviceName) - 1); ^In file included from /opt/iobroker/.cache/node-gyp/12.18.2/include/node/node.h:67, from ../../nan/nan.h:56, from ../authenticate_pam.cc:23:/opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8.h:2878:7: note: candidate: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’ int WriteUtf8(Isolate* isolate, char* buffer, int length = -1, ^~~~~~~~~/opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8.h:2878:7: note: no known conversion for argument 1 from ‘char [128]’ to ‘v8::Isolate*’../authenticate_pam.cc:152:69: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations] res = options->Get(Nan::New<String>("remoteHost").ToLocalChecked()); ^In file included from /opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8-internal.h:14, from /opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8.h:27, from /opt/iobroker/.cache/node-gyp/12.18.2/include/node/node.h:67, from ../../nan/nan.h:56, from ../authenticate_pam.cc:23:/opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8.h:3553:51: note: declared here V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key)); ^~~/opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’ declarator __attribute__((deprecated(message))) ^~~~~~~~~~../authenticate_pam.cc:155:66: error: no matching function for call to ‘v8::String::WriteUtf8(char [128], long unsigned int)’ remoteHost->WriteUtf8(m->remoteHost, sizeof(m->remoteHost) - 1); ^In file included from /opt/iobroker/.cache/node-gyp/12.18.2/include/node/node.h:67, from ../../nan/nan.h:56, from ../authenticate_pam.cc:23:/opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8.h:2878:7: note: candidate: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’ int WriteUtf8(Isolate* isolate, char* buffer, int length = -1, ^~~~~~~~~/opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8.h:2878:7: note: no known conversion for argument 1 from ‘char [128]’ to ‘v8::Isolate*’../authenticate_pam.cc:160:58: error: no matching function for call to ‘v8::String::WriteUtf8(char [128], long unsigned int)’ username->WriteUtf8(m->username, sizeof(m->username) - 1); ^In file included from /opt/iobroker/.cache/node-gyp/12.18.2/include/node/node.h:67, from ../../nan/nan.h:56, from ../authenticate_pam.cc:23:/opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8.h:2878:7: note: candidate: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’ int WriteUtf8(Isolate* isolate, char* buffer, int length = -1, ^~~~~~~~~/opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8.h:2878:7: note: no known conversion for argument 1 from ‘char [128]’ to ‘v8::Isolate*’../authenticate_pam.cc:161:58: error: no matching function for call to ‘v8::String::WriteUtf8(char [128], long unsigned int)’ password->WriteUtf8(m->password, sizeof(m->password) - 1); ^In file included from /opt/iobroker/.cache/node-gyp/12.18.2/include/node/node.h:67, from ../../nan/nan.h:56, from ../authenticate_pam.cc:23:/opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8.h:2878:7: note: candidate: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’ int WriteUtf8(Isolate* isolate, char* buffer, int length = -1, ^~~~~~~~~/opt/iobroker/.cache/node-gyp/12.18.2/include/node/v8.h:2878:7: note: no known conversion for argument 1 from ‘char [128]’ to ‘v8::Isolate*’ ../authenticate_pam.cc: At global scope:../authenticate_pam.cc:170:11: error: variable or field ‘init’ declared void void init(Handle<Object> exports) { ^~~~~~../authenticate_pam.cc:170:11: error: ‘Handle’ was not declared in this scope ../authenticate_pam.cc:170:11: note: suggested alternative: ‘rand_r’ void init(Handle<Object> exports) { ^~~~~~ rand_r ../authenticate_pam.cc:170:24: error: expected primary-expression before ‘>’ token void init(Handle<Object> exports) { ^../authenticate_pam.cc:170:26: error: ‘exports’ was not declared in this scope void init(Handle<Object> exports) { ^~~~~~~ In file included from ../../nan/nan.h:56, from ../authenticate_pam.cc:23:../authenticate_pam.cc:175:31: error: ‘init’ was not declared in this scope NODE_MODULE(authenticate_pam, init); ^~~~/opt/iobroker/.cache/node-gyp/12.18.2/include/node/node.h:608:36: note: in definition of macro ‘NODE_MODULE_X’ (node::addon_register_func) (regfunc), \ ^~~~~~~../authenticate_pam.cc:175:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(authenticate_pam, init); ^~~~~~~~~~~ ../authenticate_pam.cc:175:31: note: suggested alternative: ‘int’ NODE_MODULE(authenticate_pam, init); ^~~~/opt/iobroker/.cache/node-gyp/12.18.2/include/node/node.h:608:36: note: in definition of macro ‘NODE_MODULE_X’ (node::addon_register_func) (regfunc), \ ^~~~~~~../authenticate_pam.cc:175:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(authenticate_pam, init); ^~~~~~~~~~~ make: *** [authenticate_pam.target.mk:111: Release/obj.target/authenticate_pam/authenticate_pam.o] Fehler 1 gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)gyp ERR! stack at ChildProcess.emit (events.js:315:20)gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)gyp ERR! System Linux 4.4.59+gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"gyp ERR! cwd /opt/iobroker/node_modules/authenticate-pamgyp ERR! node -v v12.18.2gyp ERR! node-gyp -v v5.1.0gyp ERR! not ok
Wie gesagt, es läuft alles und auch die Adapter werden aktualisiert.
Ich würde nur gern Wissen, was die Fehler bedeuten und wie ich das Problem beseitigen kann. -
Keine Ahnung ob das für @andre relevant ist aber vielleicht ja. iObroker lief noch war aber nicht mehr erreichbar Fehler im log.
,"model":"Intel(R) Celeron(R) CPU J3455 @ 1.50GHz","cpus":4,"mem":8181518336,"ostype":"Linux","city":"Altena","vis":585} hash changed or no sources cached => force download of new sources /opt/scripts/iobroker_startup.sh: Zeile 466: 446 Speicherzugriffsfehler (Speicherabzug geschrieben) gosu iobroker node node_modules/iobroker.js-controller/controller.js