NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
Das hört sich super an. Das hieße auf Portainer könnte man im Prinzip verzichten?
Ich kann nichts versprechen aber ich würde schon testen (vermutlich aber nicht dieses Wochenende).
Ich würde eigentlich auch die Neuinstallation bevorzugen. Die Scripte könnte ich ja komplett exportieren und importieren. Wie könnte ich am einfachsten die Adapter und dessen Einstellungen transferieren?
Und als letztes: Meine selbst angelegten Datenpunkte liegen direkt ganz oben unter Systemvariabeln.0 wie könnte ich die kopieren?
-
@andre Würde und könnte gerne testen. Hier wurde jetzt viel über die Version mit MACVLAN geschrieben.
Welche Schritte sind jetzt für die Host-Version auszuführen?
- V2 runterfahren & Datenstruktur kopieren
- Neuen Container V302 anlegen und kopierte Datenstruktur ankoppeln
- V302 starten
Muss dann noch irgendwas im Container selbst geupdatet werden? Beim Wechsel V1 → V2 war ja noch folgendes Script auszuführen:
cd /opt/iobroker mv reinstall.sh reinstall.dos tr -d '\r' < reinstall.dos > reinstall.sh chmod +x reinstall.sh ./reinstall.sh
Danke, Ralf
-
@andre würde mich auch zum Testen anbieten. Bin momentan noch auf der V2.
Was sollen wir genau machen, um es zu testen?Gruß
Denis -
@cash @dbathlon
Wenn man auf V3 ist sollte es ausreichen eine normale neuinstallation zu machen
(beschrieben auch auf Andre seiner Webseite: https://buanet.de/2019/05/iobroker-unter-docker-auf-der-synology-diskstation-v3/4/# unter Schritt "Container aktualisieren") . Andre hat auf Docker Hub das 3.0.2 beta Dockerfile mit dem tag beta versehen.
Man muss dann also beim neu erstellen zwei (bzw. drei) Dinge beachten:- Der Image Name muss auf buanet/iobroker:beta gestellt werden und
- das Netzwerk muss auf Host umgestellt werden (dürfte ja vorher auf MACVLAN oder Bridge sein). Dann laufen lassen und freuen.
- Vorher unbedingt den Docker Ordner nochmal sichern!
@RK62:
Wer auf V2 ist muss natürlich die Schritte für V2 -> V3 ausführen. Hier würde ich allerdings empfehlen erst zu warten bis das beta Image getestet wurde. -
hui sehr schön kann schon jemand erste erfahrungen berichten mit der Beta ? Ist ja wunderbar wenn ich es snun als Host laufen lassen kann.
-
Im Prinzip sollte das Aufsetzen des Beta-Containers funktionieren wie in der V3-Anleitung beschrieben, mit zwei kleinen Änderungen:
- statt dem Image mit dem tag "latest" wird "beta" heruntergeladen (buanet/iobroker:beta)
- als Netzwerk wird "host" verwendet (MACVLAN bzw. Portweiterleitungen für bridge entfallen)
Alles Andere sollte 1:1 so umsetzbar sein.
Theoretisch sollte sich der Container auch nach der V2-Anleitung erstellen lassen. Aufgrund der im DSM beschränkten Administrationsmöglichkeiten empfehle ich aber weiterhin Portainer als alternative Weboberfläche, also:
@cash sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Das hieße auf Portainer könnte man im Prinzip verzichten?
Kann man wahrscheinlich, würde ich aber nicht tun da Portainer ein echter Mehrwert ist.
@cash sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Wie könnte ich am einfachsten die Adapter und dessen Einstellungen transferieren?
Und als letztes: Meine selbst angelegten Datenpunkte liegen direkt ganz oben unter Systemvariabeln.0 wie könnte ich die kopieren?Vielleicht per Backup? Sorry, ich nehme immer den ganzen Ordner mit, daher habe ich dahingehend keine Erfahrungswerte. Aber bei der Übernahme von Daten sollte es keine Rolle spielen ob der ioBroker ein Docker-Container oder ein Raspberry o.Ä. ist.
Meine Empfehlung: neben dem Einhängen vom ioBroker-Verzeichnis würde ich zum einfachen Datentransfer in den Container ein zweites Verzeichnis einhängen. z.B. als /opt/transfer.@RK62 sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Welche Schritte sind jetzt für die Host-Version auszuführen?
V2 runterfahren & Datenstruktur kopieren
Neuen Container V302 anlegen und kopierte Datenstruktur ankoppeln
V302 startenMuss dann noch irgendwas im Container selbst geupdatet werden?
So ist es. Im Container selbst sollte nichts zu tun sein. Die Node-Version (die die Schritte v1>v2 notwendig gemacht hatte) hat sich nicht verändert.
MfG,
André -
Hi, es besteht bei mir immer noch bzw. nach einem Neustart wieder das Problem mit:
/opt/scripts/iobroker_startup.sh: 54: /opt/scripts/iobroker_startup.sh: cannot create /opt/scripts/iobroker.log: Permission deniediobroker@bfcefd7b98d0:/opt/scripts$ ls -ll insgesamt 12 -rwxr-xr-x+ 1 root users 833 Jun 17 22:40 avahi_startup.sh -rw-r--r--+ 1 root users 0 Jun 17 22:36 iobroker.log -rwxr-xr-x+ 1 root users 1500 Jun 17 22:40 iobroker_startup.sh -rwxr-xr-x+ 1 root users 143 Jun 17 22:40 packages_install.sh
Das ist das besagte Verzeichnis. Was kann ich tun?
-
@Surfer2010 Eventuell hilft ein:
chown -R iobroker /opt/scripts
Zumindest wenn dein Container in V3 ist, sollte das funktionieren.
MfG,
André -
Problem gelöst, die Ursache waren falsche Berechtigungen/Ownership im neuen (geänderten) docker-root Verzeichnis sorry again-what-learned
-
@andre
Ich hab ja jetzt auf MACVLAN umgestellt und es läuft ja auch alles, was ich installiert habe.Welchen Vorteil hat der "Host-Modus", ausser das ich nicht extra eine IP vergeben muss?
-
@tugsi sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@andre
Ich hab ja jetzt auf MACVLAN umgestellt und es läuft ja auch alles, was ich installiert habe.Welchen Vorteil hat der "Host-Modus", ausser das ich nicht extra eine IP vergeben muss?
Ich würde immer MACVLAN empfehlen, allerdings nur für fortgeschrittene User. Das aufsetzen eines Containers im Host-Modus traue ich hingegen jedem zu, der weiß wie er auf die Weboberfläche der DiskStation kommt.
Da du aber nach einem Vorteil gefragt hast, ein Vorteil wäre, dass es im Host-Modus möglich ist aus dem Container heraus direkt auf die DS zu zu greifen. Also z.B. eine Datenbank auf der DS anzusprechen. Das geht im MACVLAN nur über die Anbindung eines zweiten Netzwerks (bridge). Haben wir etwas weiter oben drüber gesprochen.
MfG,
André -
@andre
Danke André, dann werde ich das so lassen.
Soll denn noch irgendwas durchgetestet werden? Eventuell kann ich da unterstützen.
Gruß
Thomas -
Ich hab 2 grundlegende Probleme.
- Ich kann im portainer keine Images aus dem Docker Hub installieren. In dem Eingabefeld tauchen nur die eigenen Images auf.
Auf der ds Oberfläche kann ich das Image zwar laden aber es muss wohl nen altes sein. Ausgewählt habe ich Beta. Komm auf der console aber nur root user.
2 Problem: hat schon jemand den radar2 Adapter zum laufen bekommen? Ich bekomme da bei der Installation schon Fehlermeldungen ohne Ende.
- Ich kann im portainer keine Images aus dem Docker Hub installieren. In dem Eingabefeld tauchen nur die eigenen Images auf.
-
@rostnagel sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Ich hab 2 grundlegende Probleme.
- Ich kann im portainer keine Images aus dem Docker Hub installieren. In dem Eingabefeld tauchen nur die eigenen Images auf.
Das ist so korrekt. Dort tauchen nur heruntergeladene Images auf. Unter "Images" solltest du ein Image auch jederzeit laden können. Z.B.
buanet/docker:latest
registry:DockerHub
.Auf der ds Oberfläche kann ich das Image zwar laden aber es muss wohl nen altes sein. Ausgewählt habe ich Beta. Komm auf der console aber nur root user.
Das verstehe ich inhaltlich nicht.
2 Problem: hat schon jemand den radar2 Adapter zum laufen bekommen? Ich bekomme da bei der Installation schon Fehlermeldungen ohne Ende.
Hab ich noch nicht probiert. Bei mir läuft der auf nem multihost slave (raspberry).
hast du hier mal unter "Installation" geschaut? Die Capabilities musst du außerdem auch im Container setzen (in Portainer unter advances settings der letzte Tab "Capabilities").MfG,
André -
@andre sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
buanet/docker:latest
okay, soweit klarist es normal nicht so wenn in das feld etwas eintippe das dann vorschläge kommen? bei mir kommt da nix. d.h. ich muss die genaue bezeichnung vom image wissen bzw die version.
@andre sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Hab ich noch nicht probiert. Bei mir läuft der auf nem multihost slave (raspberry).
hast du hier mal unter "Installation" geschaut? Die Capabilities musst du außerdem auch im Container setzen (in Portainer unter advances settings der letzte Tab "Capabilities").MfG,
Andréjap, die zusätzlichen treiber und BT geschichten hatte ich schon installiert
habe aber keinen zugriff auf den BT stick.unter V2 hat es gereicht den container mit hoher priorität laufen zu lassen...
schade.. -
@andre Habe eben mal das Update 3.0.2 mit meiner vorhandenen Installation getestet. Das sieht echt gut aus!
Habe nur eine Fehlermeldung vom amazon-dash im Log:
2019-06-23 13:00:38.223 - info: amazon-dash.0 starting. Version 0.3.1 in /opt/iobroker/node_modules/iobroker.amazon-dash, node: v8.16.0 2019-06-23 13:00:38.618 - info: amazon-dash.0 terminating 2019-06-23 13:00:38.633 - error: Caught by controller[0]: Error: libpcap.so.0.8: cannot open shared object file: No such file or directory 2019-06-23 13:00:38.633 - error: Caught by controller[0]: at Object.Module._extensions..node (module.js:682:18) 2019-06-23 13:00:38.633 - error: Caught by controller[0]: at Module.load (module.js:566:32) 2019-06-23 13:00:38.633 - error: Caught by controller[0]: at tryModuleLoad (module.js:506:12) 2019-06-23 13:00:38.634 - error: Caught by controller[0]: at Function.Module._load (module.js:498:3) 2019-06-23 13:00:38.634 - error: Caught by controller[0]: at Module.require (module.js:597:17) 2019-06-23 13:00:38.634 - error: Caught by controller[0]: at require (internal/module.js:11:18) 2019-06-23 13:00:38.634 - error: Caught by controller[0]: at Object. (/opt/iobroker/node_modules/pcap/pcap.js:3:21) 2019-06-23 13:00:38.634 - error: Caught by controller[0]: at Module._compile (module.js:653:30) 2019-06-23 13:00:38.634 - error: Caught by controller[0]: at Object.Module._extensions..js (module.js:664:10) 2019-06-23 13:00:38.634 - error: Caught by controller[0]: at Module.load (module.js:566:32) 2019-06-23 13:00:38.634 - error: host.iobroker instance system.adapter.amazon-dash.0 terminated with code 0 (OK) 2019-06-23 13:00:38.634 - info: host.iobroker Restart adapter system.adapter.amazon-dash.0 because enabled 2019-06-23 13:01:08.644 - info: host.iobroker instance system.adapter.amazon-dash.0 started with pid 4300 2019-06-23 13:01:09.108 - error: amazon-dash.0 uncaught exception: libpcap.so.0.8: cannot open shared object file: No such file or directory 2019-06-23 13:01:09.114 - error: amazon-dash.0 Error: libpcap.so.0.8: cannot open shared object file: No such file or directory
Neuinstallation des Adapters hat nicht geholfen, auf https://github.com/PArns/ioBroker.amazon-dash habe ich auch nichts gefunden.
Wenn ich das benötigte Paket nachinstallieren möchte, erhalte ich folgende Fehlermeldung:
root@z-iobroker-beta:/opt/iobroker# apt-get install libpcap-dev Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig E: Paket libpcap-dev kann nicht gefunden werden. root@z-iobroker-beta:/opt/iobroker#
Ich nehme an, das hat nichts mit Deinem Update zu tun, führt aber dazu dass die Dash Buttons nicht mehr genutzt werden können.
Danke für Deine Arbeit!
Ralf -
@andre ich habe mich jetzt an die iobroker v3 Installation gewagt und gleich die MACVLAN Variante nicht die Host Variante. Dazu habe ich die letzt beta geladen und alle Einstellungen gemacht.
Der Fehler den ich kriege hat auch nichts mit Host oder MACVLAN zu tun sondern mit ENV.
Im Log bekomme ich diese Meldung:Sun, 23 Jun 2019 19:19:52 GMT node-telegram-bot-api deprecated Automatic enabling of cancellation of promises is deprecated. In the future, you will have to enable it yourself. See https://github.com/yagop/node-telegram-bot-api/issues/319. at module.js:653:30
Schnell gegoogelt und auf diese Lösung gekommen:
Permanent fix: set the environment variable NTBA_FIX_319 (to any value). You will have to enable Promise cancellation yourself, if you need it. This fix will be applied by default once we bump major version as it introduces backwards-incompatible changes.
Gesagt getan und habe den Container editiert und die ENV hinzugefügt. Leider habe ich das Problem, dass die zusätzliche ENV nicht übernommen wird. Ich habe das jetzt schon öfter probiert, add environment variable und dann deploy ich und die Variable ist wieder weg. Oder liege ich hier vollkommen falsch mit meinem Lösungsversuch? Bin eher nicht der iobroker Spezialist
-
@RK62 Hast du vorher ein "apt-get update" gemacht? Scheint so, als hätte der Docker Container keine Liste mit den Paketen.
-
@Holzlenkrad Das war schon mal ein guter Hinweis, danach konnte ich die Bibliotheken installieren. Nun erhalte ich eine neue Fehlermeldung.
Gruß, Ralf
2019-06-23 23:07:28.248 - info: host.iobroker instance system.adapter.amazon-dash.0 started with pid 1616 2019-06-23 23:07:28.818 - debug: amazon-dash.0 objectDB connected 2019-06-23 23:07:28.845 - debug: amazon-dash.0 statesDB connected 2019-06-23 23:07:28.872 - info: amazon-dash.0 starting. Version 0.3.1 in /opt/iobroker/node_modules/iobroker.amazon-dash, node: v8.16.0 2019-06-23 23:07:28.894 - debug: amazon-dash.0 manual MAC : 25 2019-06-23 23:07:28.895 - info: amazon-dash.0 starting pcap session on default interface 2019-06-23 23:07:28.907 - error: amazon-dash.0 uncaught exception: socket: Operation not permitted 2019-06-23 23:07:28.907 - error: amazon-dash.0 Error: socket: Operation not permitted at new PcapSession (/opt/iobroker/node_modules/pcap/pcap.js:49:39) at Object.exports.createSession (/opt/iobroker/node_modules/pcap/pcap.js:123:12) at main (/opt/iobroker/node_modules/iobroker.amazon-dash/main.js:78:29) at Adapter. (/opt/iobroker/node_modules/iobroker.amazon-dash/main.js:43:5) at emitNone (events.js:106:13) at Adapter.emit (events.js:208:7) at initAdapter (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5289:18) at createInstancesObjects (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:869:54) at createInstancesObjects (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:830:13) at Socket.that.getForeignObject (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:869:25) 2019-06-23 23:07:28.907 - info: amazon-dash.0 cleaned everything up... 2019-06-23 23:07:28.924 - info: amazon-dash.0 terminating 2019-06-23 23:07:28.960 - error: Caught by controller[0]: Error: socket: Operation not permitted 2019-06-23 23:07:28.960 - error: Caught by controller[0]: at new PcapSession (/opt/iobroker/node_modules/pcap/pcap.js:49:39) 2019-06-23 23:07:28.960 - error: Caught by controller[0]: at Object.exports.createSession (/opt/iobroker/node_modules/pcap/pcap.js:123:12) 2019-06-23 23:07:28.961 - error: Caught by controller[0]: at main (/opt/iobroker/node_modules/iobroker.amazon-dash/main.js:78:29) 2019-06-23 23:07:28.961 - error: Caught by controller[0]: at Adapter. (/opt/iobroker/node_modules/iobroker.amazon-dash/main.js:43:5) 2019-06-23 23:07:28.961 - error: Caught by controller[0]: at emitNone (events.js:106:13) 2019-06-23 23:07:28.961 - error: Caught by controller[0]: at Adapter.emit (events.js:208:7) 2019-06-23 23:07:28.961 - error: Caught by controller[0]: at initAdapter (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5289:18) 2019-06-23 23:07:28.970 - error: Caught by controller[0]: at createInstancesObjects (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:869:54) 2019-06-23 23:07:28.970 - error: Caught by controller[0]: at createInstancesObjects (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:830:13) 2019-06-23 23:07:28.971 - error: Caught by controller[0]: at Socket.that.getForeignObject (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:869:25) 2019-06-23 23:07:28.971 - error: host.iobroker instance system.adapter.amazon-dash.0 terminated with code 0 (OK) 2019-06-23 23:07:28.971 - info: host.iobroker Restart adapter system.adapter.amazon-dash.0 because enabled
-
@RK62
Das scheint dann so, als ob der Adapter nicht auf das Netzwerk-Interface zugreifen kann um nach den Paketen vom Dashbutton zu lauschen.Wie ist der Docker-Container denn gestartet worden? Im Netmode Host? Damit geht es garantiert.