NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@cburghardt sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Ich habe bisher die Version 2 des containers am laufen, zusammen mit ein paar abhängigen containern (influxdb, Grafana) und alle im host Modus.
Wenn ich nun auf die Version 3 gehe, müsste ich also vorher alle container auf bridge Modus umstellen und dann den container aktualisieren. Kriegen die hosts dabei eine neue IP Adresse (somit müsste ich alle configs anpassen)?
Ist sonst noch was zu beachten?Wenn du alle Container auf Bridge umstellst, bekommt jeder Container eine interne IP-Adresse aus dem Netz 172.17.0.0 (sandard docker bridge netz). Über dieses virtuelle Bridge Netzwerk können sich die Container dann untereinander unterhalten (Portweiterleitungen zwischen den Containern sind dabei nicht nötig). Du musst also die Config überall ändern.
Alle Services die von außen (aus dem "Heimnetz") erreichbar sein sollen (z.B. ein Webinterface oder eine eingehende Datenbankverbindung) müssen in den jeweiligen Containern per Portweiterleitung auf einen Port der DS gemappt werden (den du dann von außen über die IP der DS ansprichst).Ich habe das so bei mir produktiv ganz ähnlich laufen. Ich habe ein Docker internes Bridge-Netz in dem sich Container für iobroker, mariadb, phpmyadmin und redis befinden. Die Container können sich über dieses Netz uneingeschränkt unterhalten. Jeder hat eine eigene IP aus dem Bridge netz.
mariadb ist von außen gar nicht direkt erreichbar. Für die Weboberfläche vom phpmyadmin habe ich eine Portweiterleitung eingerichtet. Ebenso für redis, damit mein iobroker slave darauf zugreifen kann.
Zusätzlich habe ich dem iobroker-container ein zweites netz ("eine zweite Netzwerkkarte") zugeordnet. Das ist mein macvlan über das ich von außen, über eine eigene ip im heimnetz uneingeschränkt auf den iobroker zugreifen kann.MfG,
André -
OK super, danke für die Zusammenfassung. Wenn ich alle auf bridged umgestellt habe, muss ich dann noch etwas anderes beachten beim upgrade des container?
Nur als Referenz, gibt es einen issue report für das Kernel Problem von synology das den host Modus zusammen mit sudo verhindert? -
@cburghardt sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
OK super, danke für die Zusammenfassung. Wenn ich alle auf bridged umgestellt habe, muss ich dann noch etwas anderes beachten beim upgrade des container?
Nur als Referenz, gibt es einen issue report für das Kernel Problem von synology das den host Modus zusammen mit sudo verhindert?Backup machen! Nein, ich würde grundsätzlich über eine Kopie des iobroker-Ordners auf der DS gehen.
Also: alten Container weg (vorher ggf. config sichern oder die zumindest die Einstellungen notieren), Verzeichnis auf der DS duplizieren, Neues Image laden, neuen Container erstellen und iobroker-Verzeichnis-Duplikat einbinden + Netzwerk "anders" konfigurieren und ab dafür. Schauen ob iob läuft, ggf. nacharbeiten.
Falls es nicht läuft. neuen Container wieder weg, Version 2 vom Image laden und entsprechend der alten Einstellungen den alten Container neu erstellen und Originalverzeichnis einhängen... sollte in jedem Fall wieder laufen...Issue Report für das Kernel Problem kenne ich nicht und habe ich aufgrund der geringen Fix-Wahrscheinlichkeit auch nicht bei Synology gemeldet.
Wenn man aber die audit-Fehlermeldung, welche man beim Verwenden von sudo in dem entsprechenden Fall bekommt mal sucht, dann bekommt man stack overflow beiträge wo es genau darum geht (ist nicht synology spezifisch!).
Aber wie gesagt (und sehr ärgerlich) es betrifft die Kernel Version die der DSM aktuell verwendet. Ich habe ein Debian mit aktuellem Linux Kernel da ist das kein Problem. Da läuft der ioBroker auch im Host-Mode...MfG,
André -
@andre sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
sudo -u iobroker node node_modules/iobroker.js-controller/controller.js > /opt/scripts/iobroker.log 2>&1 &
Hi Andre,
iobroker wird so wie es aussieht garnicht installiert.
Das Startscript fängt kurz an läuft aber dann nicht mehr weiter und die Ausgabe hatte ich ja weiter oben schon gezeigt.
Hier mal die Eingabe über die Kommandozeile.Grüße Steffen
root@Iobroker:/opt/iobroker# iobroker start
bash: iobroker: Kommando nicht gefunden.
root@Iobroker:/opt/iobroker# sudo -u iobroker node node_modules/iobroker.js-controller/controller.js > /opt/scripts/iobroker.log 2>&1 &
[1] 324 -
@Homer-J sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@andre sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
sudo -u iobroker node node_modules/iobroker.js-controller/controller.js > /opt/scripts/iobroker.log 2>&1 &
Hi Andre,
iobroker wird so wie es aussieht garnicht installiert.
Das Startscript fängt kurz an läuft aber dann nicht mehr weiter und die Ausgabe hatte ich ja weiter oben schon gezeigt.
Hier mal die Eingabe über die Kommandozeile.Grüße Steffen
root@Iobroker:/opt/iobroker# iobroker start
bash: iobroker: Kommando nicht gefunden.
root@Iobroker:/opt/iobroker# sudo -u iobroker node node_modules/iobroker.js-controller/controller.js > /opt/scripts/iobroker.log 2>&1 &
[1] 324Hallo Steffen,
hast du unter /opt/iobroker ein Verzeichnis eingehängt? Scheint in der Tat als wäre iobroker nicht verfügbar. Schau mal was im /opt/iobroker drin ist (ls per Kommandozeile).MfG,
André -
@andre Hier mal meine Einstellungen.
Ich hab heut morgen iobroker einfach mal im angelegten Container installiert über die Console funktioniert wunderbar. Woran könnte es jetzt noch liegen das es nicht über das Startscript funktioniert. ?
Ich hätte es gern gleich mit einem Backup installieren wollen.Grüße
-
Danke hab nun das neue Docker per macvlan am laufen auf meiner Diskstation.
Jemand erfahrung mit dem unifi ? Hab den Controler im selben netz 192.168.2.1 als Docker HOST .
Kann mich aber nicht damit verbinden. Liegt das an dem HOST bug ? Sollte ich den unifi auch per macvlan einrichten ? -
So, ich hab jetzt den Container auf MACVLAN umgestellt.
War sehr einfach!Und es läuft alles bis auf den Zigbee-Adapter.
Der motzt leider rum.Sogar der Mihome-Adapter hat sofort wieder funktioniert.
PS: Und noch was. Kann es sein, dass der UPNP jetzt die Daten aus der DS auf der der Container installiert ist, jetzt nicht mehr auslesen kann?
PPS: mein Problem mit dem History-Adapter besteht weiterhin.
Er liest zwar die Daten, aber erst ab gestrigen Datum.PPPS: beim Update des JS-Controller bekomm ich NPM-Error und CHMOD-Error
js-controller-update-error.txt -
@Homer-J sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@andre Hier mal meine Einstellungen.
Ich hab heut morgen iobroker einfach mal im angelegten Container installiert über die Console funktioniert wunderbar. Woran könnte es jetzt noch liegen das es nicht über das Startscript funktioniert. ?
Ich hätte es gern gleich mit einem Backup installieren wollen.Grüße
Kann ich so nicht nachvollziehen. Zeige mal den Inhalt des eingehängten Ordners mit dem Backup. Einmal seitens FileStation, und einmal aus Sicht des Containers (ls in der Kommandozeile)
MfG,
André -
@ChrisXY sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Danke hab nun das neue Docker per macvlan am laufen auf meiner Diskstation.
Jemand erfahrung mit dem unifi ? Hab den Controler im selben netz 192.168.2.1 als Docker HOST .
Kann mich aber nicht damit verbinden. Liegt das an dem HOST bug ? Sollte ich den unifi auch per macvlan einrichten ?Wenn dein ioBroker mit MACVLAN läuft, kann er nicht mehr auf die IP-Adresse der DS zugreifen. Zumindest nicht auf die IP-Adresse die auf der selben Netzwerkschnittstelle liegt.
Demzufolge auch nicht auf den Unifi-Container der im Host-Modus läuft. Das geht einfach routingtechnisch nicht.
Damit das wieder funktioniert stelle den Unifi auf ein bridge-netzwerk um und hänge den ioBroker als zweites Netzwerk ebenfalls in das bridge netzwerk... Dann können die beiden Container sich darüber unterhalten...Bei mir sieht das so aus, nur dass es bei mir kein unifi sondern ein redis container ist...
network iobroker:
(public ist macvlan, private ist bridge)
network redis:
MfG,
André -
@andre Hi Andre,
meinst du das. ?
-
@Negalein sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Und es läuft alles bis auf den Zigbee-Adapter.
Der motzt leider rum.Was ist da das Problem?
PS: Und noch was. Kann es sein, dass der UPNP jetzt die Daten aus der DS auf der der Container installiert ist, jetzt nicht mehr auslesen kann?
Gleiches Problem wie bei ChrisXY. Der ioBroker im MACVLAN kann nicht auf die ip der DS zugreifen weil beide IP-Adressen (iobroker und DS) auf der selben physikalischen Netzwerkschnittstelle liegen...
PPPS: beim Update des JS-Controller bekomm ich NPM-Error und CHMOD-Error
js-controller-update-error.txtWelche Version zu welcher Version? Da in der Vergangenheit viel bei den neusten Versionen vom js-controller schief gelaufen ist installiere ich nur noch stable... Zu viel Ärger damit... Kannst ja mal bei github schauen...
MfG,
André -
@Homer-J sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@andre Hi Andre,
meinst du das. ?
Ja, bekommst du die selben Dateien angezeigt wenn du über die Kommandozeile im Ordner /opt/iobroker im container ein "ls -al" machst?
-
@andre sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
ls -al
Hier die Ausgabe.
-
Danke habe nun iobroker noch bridged hinzugefügt diese 17.xxxxx IP nutze ich dann wenn die Diskstation ( Proxy ) weiterleitet. Unifi hab ich auch zusätzlich in Bridged hinzugefügt .. aber der fehler dort ist wohl ein anderer...
-
@andre sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@Negalein sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Und es läuft alles bis auf den Zigbee-Adapter.
Der motzt leider rum.Was ist da das Problem?
Error while starting zigbee-shepherd!. Error: Error: Not a directory, cannot open /dev/ttyACM0/
zigbee.0 2019-05-15 21:45:34.610 debug system.adapter.admin.0: logging true zigbee.0 2019-05-15 21:41:49.095 debug User stateChange zigbee.0.info.connection {"val":false,"ack":false,"ts":1557949309092,"q":0,"from":"system.adapter.zigbee.0","lc":1557607846425} zigbee.0 2019-05-15 21:41:49.094 debug User stateChange zigbee.0.info.pairingMessage {"val":"Error: Error while starting zigbee-shepherd!. Error: Error: Not a directory, cannot open /dev/ttyACM0/","ack":false,"ts":1557949309091,"q":0,"fro zigbee.0 2019-05-15 21:41:49.089 error Error while starting zigbee-shepherd!. Error: Error: Not a directory, cannot open /dev/ttyACM0/ zigbee.0 2019-05-15 21:41:49.085 info Starting zigbee-shepherd zigbee.0 2019-05-15 21:40:49.084 info Error while starting zigbee-shepherd, attempting to fix... (takes 60 seconds) zigbee.0 2019-05-15 21:40:49.078 info Reset coordinator zigbee.0 2019-05-15 21:40:49.049 info Queue is: true zigbee.0 2019-05-15 21:40:49.049 info Start on port: /dev/ttyACM0/ with panID 6754 channel 26 zigbee.0 2019-05-15 21:40:49.046 info starting. Version 0.10.3 in /opt/iobroker/node_modules/iobroker.zigbee, node: v8.16.0 zigbee.0 2019-05-15 21:40:48.925 debug statesDB connected zigbee.0 2019-05-15 21:40:48.895 debug objectDB connected
PS: Und noch was. Kann es sein, dass der UPNP jetzt die Daten aus der DS auf der der Container installiert ist, jetzt nicht mehr auslesen kann?
Gleiches Problem wie bei ChrisXY. Der ioBroker im MACVLAN kann nicht auf die ip der DS zugreifen weil beide IP-Adressen (iobroker und DS) auf der selben physikalischen Netzwerkschnittstelle liegen...
Ok, das werde ich mir ansehen.
PPPS: beim Update des JS-Controller bekomm ich NPM-Error und CHMOD-Error
js-controller-update-error.txtWelche Version zu welcher Version? Da in der Vergangenheit viel bei den neusten Versionen vom js-controller schief gelaufen ist installiere ich nur noch stable... Zu viel Ärger damit... Kannst ja mal bei github schauen...
1.4.2 auf 1.5.8
-
@andre sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
PS: Und noch was. Kann es sein, dass der UPNP jetzt die Daten aus der DS auf der der Container installiert ist, jetzt nicht mehr auslesen kann?
Gleiches Problem wie bei ChrisXY. Der ioBroker im MACVLAN kann nicht auf die ip der DS zugreifen weil beide IP-Adressen (iobroker und DS) auf der selben physikalischen Netzwerkschnittstelle liegen...
Muss ich dann zB in den Netzwerkeinstellungen vom Container das zusätzliche Bridge hinzufügen?
IP ist dann die der DS?
Gateway das vom Router? -
Hallo,
ich habe das gleiche Problem wie u.A. Homer J: das iobroker über iobroker_startup.sh nicht startet. Ich muss iobroker in der Konsole starten z.B. mit iobroker start.
Der Befehl aus dem script "sudo -u iobroker node node_modules/iobroker.js-controller/controller.js > /opt/scripts/iobroker.log 2>&1 &" in der Konsole eingegeben startet iobroker ebenfalls nicht und gibt auch keine Fehlermeldung.
Aber: Der Befehl "node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &" aus der alten Anleitung V2.0 startet iobroker. Wenn ich das startup script entsprechend ändere, kann ich den Container auch beenden und neu starten.
Sieht so aus, als wenn ich nach jedem update das script ändern muss
Gruß
Stefan -
@Homer-J sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Hmm, erschließt sich mich absolut nicht, warum er den ioBroker von dort nicht starten will. Du könntest mal den reinstall.sh drüber laufen lassen.... Mich wundert dass er sagt "kommando nicht gefunden"... Vielleicht hat sonst wer noch eine Idee??
-
@ChrisXY sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Danke habe nun iobroker noch bridged hinzugefügt diese 17.xxxxx IP nutze ich dann wenn die Diskstation ( Proxy ) weiterleitet. Unifi hab ich auch zusätzlich in Bridged hinzugefügt .. aber der fehler dort ist wohl ein anderer...
Ich glaube du hast das nicht ganz korrekt verstanden.
Auf die 17ner Adresse kannst du nur aus Docker heraus zugreifen, also nur von anderen Containern. Die ist von außen (auch von der DS/ dem Proxy aus) nicht erreichbar. Ich weiß leider nicht was unifi ist, aber falls das in einem anderen Container läuft kannst du diesen über das 17ner netz mit dem iobroker verbinden... Schau mal hier, das habe ich dazu gerade bei Facebook geschrieben: