NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@bambulko
Es gibt auch eine Doku von Buanet: https://docs.buanet.de/de/iobroker-docker-image/docs/#getting-started
Und ja, den discord Server gibt es noch -
@fredf Seit gestern funktioniert das Javascript Adapter nicht mehr. Mir wurde in einem anderen Thread gesagt, ich sollte meine Installation updaten, und nach einigen Versuchen habe ich auch den docker container mit apt-get update && apt-get upgrade -y aktuallisiert bekommen.
Wenn ich aber jetzt iobroker updaten, mit
pkill -u iobroker iobroker update iobroker upgrase self
kommt zwar folgendes:
sudo docker exec -it 69c5eec1e549 iobroker upgrade self Update js-controller from @4.0.21 to @5.0.12 Stopped Objects DB Stopped States DB NPM version: 6.14.18 Installing iobroker.js-controller@5.0.12... (System call)
Aber danach ist immer noch Version 4.0.21 installiert.
-
@bambulko sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Aber danach ist immer noch Version 4.0.21 installiert.
Da ist auch die nodejs-Version zu alt und/oder falsch installiert.
auch den docker container mit apt-get update && apt-get upgrade -y aktuallisiert bekommen.
So geht das nicht in Containern.
-
@bambulko Das sind die Fehlermeldungen im log. Was mich wundert, ist dass es einfach aufgehört hat zu funktionieren, ohne das etwas geändert wurde. Ich hatte nur ein neues Skript gemacht, welches auch funktioniert hat. Kurz darauf ging nichts mehr.
host.iobroker 2023-09-22 10:09:00.195 error Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:1114:14) host.iobroker 2023-09-22 10:09:00.195 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/main.js:65:19) host.iobroker 2023-09-22 10:09:00.195 error Caught by controller[0]: at require (internal/modules/cjs/helpers.js:107:18) host.iobroker 2023-09-22 10:09:00.195 error Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:1003:19) host.iobroker 2023-09-22 10:09:00.194 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:819:12) host.iobroker 2023-09-22 10:09:00.194 error Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:979:32) host.iobroker 2023-09-22 10:09:00.194 error Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10) host.iobroker 2023-09-22 10:09:00.194 error Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:1114:14) host.iobroker 2023-09-22 10:09:00.194 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/@iobroker/adapter-core/build/index.js:21:1) host.iobroker 2023-09-22 10:09:00.194 error Caught by controller[0]: at require (internal/modules/cjs/helpers.js:107:18) host.iobroker 2023-09-22 10:09:00.194 error Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:1003:19) host.iobroker 2023-09-22 10:09:00.194 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:774:27) host.iobroker 2023-09-22 10:09:00.193 error Caught by controller[0]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:931:15) host.iobroker 2023-09-22 10:09:00.193 error Caught by controller[0]: - /opt/iobroker/node_modules/iobroker.javascript/main.js host.iobroker 2023-09-22 10:09:00.193 error Caught by controller[0]: - /opt/iobroker/node_modules/iobroker.javascript/node_modules/@iobroker/adapter-core/build/index.js host.iobroker 2023-09-22 10:09:00.193 error Caught by controller[0]: Require stack: host.iobroker 2023-09-22 10:09:00.193 error Caught by controller[0]: Error: Cannot find module '@iobroker/types' host.iobroker 2023-09-22 10:09:00.193 error Caught by controller[0]: ^ host.iobroker 2023-09-22 10:09:00.193 error Caught by controller[0]: throw err; host.iobroker 2023-09-22 10:09:00.192 error Caught by controller[0]: internal/modules/cjs/loader.js:934 host.iobroker 2023-09-22 10:01:55.877 error instance system.adapter.javascript.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.iobroker 2023-09-22 10:01:55.877 error Caught by controller[0]: } host.iobroker 2023-09-22 10:01:55.877 error Caught by controller[0]: ] host.iobroker 2023-09-22 10:01:55.877 error Caught by controller[0]: '/opt/iobroker/node_modules/iobroker.javascript/main.js' host.iobroker 2023-09-22 10:01:55.877 error Caught by controller[0]: '/opt/iobroker/node_modules/iobroker.javascript/node_modules/@iobroker/adapter-core/build/index.js', host.iobroker 2023-09-22 10:01:55.877 error Caught by controller[0]: requireStack: [ host.iobroker 2023-09-22 10:01:55.876 error Caught by controller[0]: code: 'MODULE_NOT_FOUND', host.iobroker 2023-09-22 10:01:55.876 error Caught by controller[0]: { host.iobroker 2023-09-22 10:01:55.876 error Caught by controller[0]: at internal/main/run_main_module.js:17:47 host.iobroker 2023-09-22 10:01:55.876 error Caught by controller[0]: at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12) host.iobroker 2023-09-22 10:01:55.876 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:819:12) host.iobroker 2023-09-22 10:01:55.876 error Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:979:32) host.iobroker 2023-09-22 10:01:55.876 error Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10) host.iobroker 2023-09-22 10:01:55.876 error Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:1114:14) host.iobroker 2023-09-22 10:01:55.876 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/main.js:65:19) host.iobroker 2023-09-22 10:01:55.876 error Caught by controller[0]: at require (internal/modules/cjs/helpers.js:107:18) host.iobroker 2023-09-22 10:01:55.875 error Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:1003:19) host.iobroker 2023-09-22 10:01:55.875 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:819:12) host.iobroker 2023-09-22 10:01:55.875 error Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:979:32) host.iobroker 2023-09-22 10:01:55.875 error Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10) host.iobroker 2023-09-22 10:01:55.875 error Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:1114:14) host.iobroker 2023-09-22 10:01:55.875 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/@iobroker/adapter-core/build/index.js:21:1) host.iobroker 2023-09-22 10:01:55.875 error Caught by controller[0]: at require (internal/modules/cjs/helpers.js:107:18) host.iobroker 2023-09-22 10:01:55.875 error Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:1003:19) host.iobroker 2023-09-22 10:01:55.875 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:774:27) host.iobroker 2023-09-22 10:01:55.875 error Caught by controller[0]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:931:15) host.iobroker 2023-09-22 10:01:55.874 error Caught by controller[0]: - /opt/iobroker/node_modules/iobroker.javascript/main.js host.iobroker 2023-09-22 10:01:55.874 error Caught by controller[0]: - /opt/iobroker/node_modules/iobroker.javascript/node_modules/@iobroker/adapter-core/build/index.js host.iobroker 2023-09-22 10:01:55.874 error Caught by controller[0]: Require stack: host.iobroker 2023-09-22 10:01:55.874 error Caught by controller[0]: Error: Cannot find module '@iobroker/types' host.iobroker 2023-09-22 10:01:55.874 error Caught by controller[0]: ^ host.iobroker 2023-09-22 10:01:55.874 error Caught by controller[0]: throw err; host.iobroker 2023-09-22 10:01:55.874 error Caught by controller[0]: internal/modules/cjs/loader.js:934 host.iobroker 2023-09-22 10:01:55.517 error instance system.adapter.backitup.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.iobroker 2023-09-22 10:01:55.517 error Caught by controller[0]: } host.iobroker 2023-09-22 10:01:55.517 error Caught by controller[0]: ] host.iobroker 2023-09-22 10:01:55.517 error Caught by controller[0]: '/opt/iobroker/node_modules/iobroker.backitup/main.js' host.iobroker 2023-09-22 10:01:55.517 error Caught by controller[0]: '/opt/iobroker/node_modules/iobroker.backitup/node_modules/@iobroker/adapter-core/build/index.js', host.iobroker 2023-09-22 10:01:55.517 error Caught by controller[0]: requireStack: [ host.iobroker 2023-09-22 10:01:55.516 error Caught by controller[0]: code: 'MODULE_NOT_FOUND', host.iobroker 2023-09-22 10:01:55.516 error Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:1003:19) { host.iobroker 2023-09-22 10:01:55.516 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:819:12) host.iobroker 2023-09-22 10:01:55.516 error Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:979:32) host.iobroker 2023-09-22 10:01:55.516 error Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10) host.iobroker 2023-09-22 10:01:55.516 error Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:1114:14) host.iobroker 2023-09-22 10:01:55.516 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.backitup/node_modules/@iobroker/adapter-core/build/index.js:21:1) host.iobroker 2023-09-22 10:01:55.516 error Caught by controller[0]: at require (internal/modules/cjs/helpers.js:107:18) host.iobroker 2023-09-22 10:01:55.516 error Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:1003:19) host.iobroker 2023-09-22 10:01:55.516 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:774:27) host.iobroker 2023-09-22 10:01:55.515 error Caught by controller[0]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:931:15) host.iobroker 2023-09-22 10:01:55.515 error Caught by controller[0]: - /opt/iobroker/node_modules/iobroker.backitup/main.js host.iobroker 2023-09-22 10:01:55.515 error Caught by controller[0]: - /opt/iobroker/node_modules/iobroker.backitup/node_modules/@iobroker/adapter-core/build/index.js host.iobroker 2023-09-22 10:01:55.515 error Caught by controller[0]: Require stack: host.iobroker 2023-09-22 10:01:55.515 error Caught by controller[0]: Error: Cannot find module '@iobroker/types' host.iobroker 2023-09-22 10:01:55.515 error Caught by controller[0]: ^ host.iobroker 2023-09-22 10:01:55.515 error Caught by controller[0]: throw err; host.iobroker 2023-09-22 10:01:55.514 error Caught by controller[0]: internal/modules/cjs/loader.js:934
-
@thomas-braun Ich habe mich hieran gehalten:
https://smarthome.buanet.de/2020/10/iobroker-docker-container-updates-upgrades/Und iob diag zeigt jetzt auch keine pending OS updates mehr an:
======================= SUMMARY ======================= v.2023-06-20 model name : Intel(R) Celeron(R) J4005 CPU @ 2.00GHz Kernel : x86_64 Userland : amd64 Docker : v6.1.0 Installation: Docker Kernel: x86_64 Userland: amd64 Timezone: Etc/UTC User-ID: 0 X-Server: false Pending OS-Updates: 0 Pending iob updates: 6 Nodejs-Installation: /usr/bin/nodejs v14.21.3 /usr/bin/node v14.21.3 /usr/bin/npm 6.14.18 /usr/bin/npx 6.14.18 Recommended versions are nodejs 18.x.y and npm 9.x.y Your nodejs installation is correct MEMORY: total used free shared buff/cache available Mem: 15G 5.8G 373M 761M 9.0G 8.6G Swap: 2.0G 2.0M 2.0G Total: 17G 5.8G 2.4G Active iob-Instances: 22 Active repo(s): stable ioBroker Core: js-controller 4.0.21 admin 6.3.5 ioBroker Status: iobroker is running on this host. Objects type: jsonl States type: jsonl Status admin and web instance: + system.adapter.admin.0 : admin : iobroker - enabled, port: 8091, bind: 0.0.0.0, run as: admin + system.adapter.web.0 : web : iobroker - enabled, port: 8082, bind: 0.0.0.0, run as: admin Objects: 3494 States: 2857 Size of iob-Database: 6.5M /opt/iobroker/iobroker-data/objects.jsonl 3.1M /opt/iobroker/iobroker-data/states.jsonl =================== END OF SUMMARY ====================
-
@bambulko
Node 14 und NPM 6 sind steinalt.Recommended versions are nodejs 18.x.y and npm 9.x.y
Wann hast Du denn den Container aktualisiert?
-
@thomas-braun sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
So geht das nicht in Containern.
Eigentlich doch.
Aber er muss erst das drum rum aktualisieren. also den container an sich.buanet hat im container nur das betriebssystem und node + evtl weitere notwendige pakete definiert.
die ganze iobroker installation erfolgt in einem sogenannten volume, der gewissermaßen ausserhalb des container images liegt.
daher kann man auch das image aktualisieren ohne die volatilen daten (=volume = iobroker installation) zu verlieren. -
@codierknecht Hmm, wenn man diers Anleitung folgt, werden genau diese Versionen installiert:
https://docs.buanet.de/iobroker-docker-image/docs/
EDIT: Oh, ich sehe gerade, dass man mit 'latest' wohl eine uralte Version installiert. Warum auch immer.
-
@bambulko sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
https://smarthome.buanet.de/2020/10/iobroker-docker-container-updates-upgrades/
-
zunächst, ganz dringend, du machst ein backup deiner iobroker installation (backitup adapter)
-
als nächstes am besten alle adapter gemäß dem stable repository im iobroker aktualisieren
-
dann kannst du als nächstes den container aktualisieren. dieser enthält node+betriebssystem
mit einem aktualisierten container hast du dann auch das aktuellste node
(das muss man nicht bei jedem mal machen, aber wenn die iobroker hauptversionen sich ändern, dann auf jeden fall)
Beschreibung ist ebenfalls anhand portainer in deinem link enthalten -
wenn du das geschafft hast und dein iobroker noch läuft, dann kannst du
den iobroker selbst aktualisieren. so wie du es da oben gemacht hast. aber ich glaube es gibt mittlerweile eine maintanance von buanet funktion, die dir das etwas automatisiert macht. -
dann nochmal nach den adaptern schauen, da sich durch die neue iobroker version ggfs einige adapter nochmal aktualisieren müssen
hast du portainer oder etwas anderes?
-
-
@bambulko sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Oh, ich sehe gerade, dass man mit 'latest' wohl eine uralte Version installiert. Warum auch immer.
Eigentlich erhälst Du mit "latest" das allerneueste Image.
Das kann sich aber noch in Entwicklung befinden und wird daher nicht empfohlen.Ich hatte das bis zum Wechsel auf den NUC immer mit den Bordmitteln der Synology gemacht.
Genau so, wie ich es oben beschrieben habe.
Dauert eben eine ganze Weile, bis das Startscript alle Adapter installiert hat. Aber nach 1-2 Stunden lief wieder alles. -
@oliverio Danke. Nein Portainer habe ich noch nie verwendet. Und Backitup funktioniert auch nicht mehr. Es bleibt einfach rot, wenn ich es starte. Allerdings habe ich gestern noch ein Backup gemacht.
-
@bambulko
na das backup von gestern reicht ja. also ein backup mit dem backitup adapter?dann kannst du ja direkt den container aktualisieren.
da latest nicht empfohlen wird erzeugst du am besten einen neuen container, wie wenn du frisch anfangen würdest.
wenn der dann läuft, dann kannst du dein backup mit dem backitup-adapter wieder einspielen. dann bist auch schon fertig wenn es keine weiteren probleme gibt -
@oliverio Das backup habe ich mit iobroker backup gemacht.
Muss ich den alten Container dafür erst löschen? -
nein, erst mal behalten. aber ausschalten oder stoppen.
habe keine syno, deswegen weiß ich nicht genau wie die funktionen sich nennen.
du kannst auch immer nur einen den beiden containern dann laufen lassen, da sich ansonsten die ports gegenseitig sperren.
wenn der neue container dann mit eingespieltem backup läuft dann kannst den alten löschen. -
-
@codierknecht Um einen neuen Container zu erzeugen, musste ich einen anderen Namen verwenden. Ich habe jetzt iobroker2 benutzt. Jetzt habe ich auf dem Rechner einmal unter /docker/iobroker die ganzen alten Sachen, und ein neues Verzeichnis /docker/iobroker2, welches aber leer ist.
Wie kann ich das alte Verzeichnis mit der neuen Version verwenden? -
Um einen neuen Container zu erzeugen, musste ich einen anderen Namen verwenden
Stimmt - da ist die Synology etwas zickig. Darum habe ich meinen Container immer gleich gelöscht.
Jetzt habe ich auf dem Rechner einmal unter /docker/iobroker die ganzen alten Sachen, und ein neues Verzeichnis /docker/iobroker2, welches aber leer ist.
Stoppe mal den Container und mounte das "alte" Verzeichnis.
Mein Container läuft zwar nicht mehr, aber vorhanden ist er noch.
Im Host-Mode, damit ich nicht immer wieder Ports nachtragen musste. -
@codierknecht Wie kann ich denn in einem existierenden container ein mount machen? Oder muss ich einen neuen erstellen?
-
Hey,
hier mal der Auszug aus meiner (Update-)Dokumentation:
-
Info: Update wird manuell durchgeführt, weil kein Latest Image verwendet werden soll.
-
Dockerhub auf neue Version prüfen: https://hub.docker.com/r/buanet/iobroker
-
Synology NAS Oberfläche aufrufen
-
Systemsteuerung -> Aufgabenplaner aufrufen
-
ioBroker_Install Script bearbeiten (siehe unten)
-
- Container Name auf zu aktualisierende Versionsnummer updaten
-
- Container Image unten auf zu aktualisierende Versionsnummer anpassen
-
Container stoppen
-
Inhalt von /volume1/docker/iobroker nach /volume1/backup/ioBroker-Backup kopieren
-
Script ausführen
-
Warten bis Container läuft
-
Seite aufrufen: http://nas.fritz.box:8081/
-
Prüfen, ob alle Adapter laufen
-
Wenn alles zuverlässig läuft, dann
-
- Backup löschen (es gibt ja noch das vom Backup NAS)
-
- Altes Image löschen
-
- Alten Container löschen
ioBroker Installscript
docker run -d --name=ioBroker-8.1.0 \ -p 502:502 \ -p 1502:1502 \ -p 1880:1880 \ -p 1883:1883 \ -p 2001:2001 \ -p 8081:8081 \ -p 8082:8082 \ -p 8282:8282 \ -p 8088:8088 \ -p 8284:8284 \ -v /volume1/docker/iobroker:/opt/iobroker \ --restart always \ buanet/iobroker:v8.1.0
-
-
@bambulko
Das geht problemlos