NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@bean sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Ich habe ein Verzeichnis am Host erstellt, und dieses in Portainer mit "bind" mit dem "/opt/iobroker" im Container gelinkt(?).
Das meinte ich , quasi ohne diesem ...
Nachdem dort auch Dateien und Verzeichnisse erstellt werden, klappt das ja grundsätzlich.
jetzt geht es ... das verstehe ich jetzt nicht , oben schreibts du
aber es bricht immer bei Schritt 3 ab:
-
@glasfaser said in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Das meinte ich , quasi ohne diesem ...
Nachdem dort auch Dateien und Verzeichnisse erstellt werden, klappt das ja grundsätzlich.
jetzt geht es ... das verstehe ich jetzt nicht , oben schreibts du
aber es bricht immer bei Schritt 3 ab:
Ich versuche es eindeutig zu formulieren:
Also es bricht mit dem Fehler "There was a problem detecting the admin instance of your iobroker." ab, diese Log-File sieht man in Portainer - und der Container läuft auch nicht.
Aber im gemounteten Verzeichnis wurden Dateien erstellt, bevor es zum Abbruch kam.ABER: Das bezieht sich nur auf Portainer! Auf der Linux-Kommandozeile startet der IOBroker-Docker-Container auch mit dem gleichen gemounteten Verzeichnis erfolgreich - dürfte also eher ein Portainer-spezifisches Problem sein.
-
@bean
Wie startest du denn im Portainer? Mit compose/Stack? Wenn ja, hau mal rein hier. -
@hollywoot
Bin mit Portainer noch nicht so richtig vertraut. Derzeit starte die Container einfach manuell unter "Container"/"Add Container" und gebe die notwendigen Infos ein (Netzwerk, Volume). -
@bean
OK, das erklärt es wohl.
Portainer funktioniert nicht wirklich 100%ig auf der Synology.
Versuchs mal Mithilfe von docker-compose. Den Inhalt der compose kannst du im Portainer als "Stack" hinzufügen. -
@bean
im Grunde ist Portainer nur ein GUI, um dir visuell einiges zu erleichtern.
Die Fehlermeldung die Du bekommst, ist ja aus dem Startscript des Docker-Containers, unabhängig vom Portainer, der meckert, dass die Admin-Instanz nicht da ist, also quasi das minimum vom ioBroker, die erste Instanz, warum, kann ich dir nicht sagen.
Aber wir versuchen mal zu helfen.Welchen Befehl gibst Du denn in der Konsole ein, damit der ioBroker erstellt wird?
Du kannst den auch so erstellen und trotzdem dann über den Portainer administrieren, so habe ich meine ersten Container auch gemacht.
Schicker ist natürlich wie @hollywoot meint mit compose/stack, dann kannst auch einfach aus Portainer updaten, so muss immer zurück in die Konsole, wenn updaten willst.Also, wenn den jetzt so erstellt hast, solltest ihn auch im Portainer sehen, ich habe meinen ioBroker nämlich auch noch klassisch nach Anleitung von Buanet über die Konsole erstellt, sehe ihn aber im Portainer..
Eventuell hast Du den Mount falsch eingerichtet, werden da Daten geschrieben?
Bei mir sieht's so aus (Synology NAS):
-
@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Portainer funktioniert nicht wirklich 100%ig auf der Synology.
Höre ich zum erstem mal !?
Er hat keine Synology ..
@bean sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
das Image auf einem Debian mit Intel i7 CPU zu starten,
-
@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Den Inhalt der compose kannst du im Portainer als "Stack" hinzufügen.
Kannst Du bitte mal Dein Stack hier posten?
Wie ich oben schrieb, hab ich mein ioBroker auch noch klassisch von der Konsole erstellt, aber für die Zukunft würde ich auch das umstellen in Stack, ist ja dann doch einfacher -
@glasfaser
Zum ersten Mal? Ich konnte noch nie über Portainer zB meine ENV ändern/ergänzen. Funktioniert einfach nicht. Drückst auf Speichern und er ignoriert dich schlichtweg.Wenn er keine Synology hat, was sucht er dann hier
-
@tugsi
Such ich morgen mal raus und posten es hier.
Ich bin jetzt quasi schon im BettEdit:
@tugsi Hier mal meine Compose (IP-Adressen frei abgeändert/erfunden):version: '2.4' services: ioBroker: image: buanet/iobroker:latest container_name: ioBroker hostname: iobroker dns: - "192.168.0.1" - "1.1.1.1" dns_search: "lan" ports: - "8081:8081" - "8082:8082" - "8087:8087" - "9000:9000" - "9001:9001" environment: - TZ=Europe/Berlin - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - LANG=de_DE.UTF-8 - DEBIAN_FRONTEND=teletype - LANGUAGE=de_DE:de - LC_ALL=de_DE.UTF-8 # - SETGID=1000 # - SETUID=1000 # - PACKAGES=vim ssh - IOB_MULTIHOST=master - IOB_OBJECTSDB_HOST=0.0.0.0 - IOB_OBJECTSDB_PORT=9001 - IOB_OBJECTSDB_TYPE=jsonl - IOB_STATESDB_HOST=0.0.0.0 - IOB_STATESDB_PORT=9000 - IOB_STATESDB_TYPE=jsonl volumes: - /volume1/docker/ioBroker:/opt/iobroker networks: LAN: ipv4_address: 192.168.0.150 iobroker-db_default: restart: always networks: LAN: name: LAN driver: macvlan driver_opts: parent: bond0 ipam: config: - subnet: 192.168.0.0/24 ip_range: 192.168.0.200/29 gateway: 192.168.0.1 iobroker-db_default: name: iobroker-db_default driver: bridge ipam: config: - subnet: 172.21.0.0/16 gateway: 172.21.0.1
Der Container läuft in einem MACVLAN.
Außerdem im Multihost-Betrieb. Zum Kopieren der Compose und erfolgreichem Starten sollte man diese Dinge beachten und ggf. anpassen.
Dasiobroker-db_default
-Netz habe ich, weil ich zusätzlich einen MySQL/InfluxDB-Container separat laufen habe. Auch da müsste man die IP-Adressen anpassen oder das Netzwerk komplett entfernen. -
Hallo @andre , Forum,
habe Docker auf meiner DS220+ laufen, neueste Firmware.
Zusätzlich habe ich nach deinem HowTo Portainer installiert und ein neues MACVLAN eingerichtet.
Mit diesem Script erstelle ich den Container:docker run -d --name=ioBroker \ --network ioBroker \ -p 502:502 \ -p 1502:1502 \ -p 1880:1880 \ -p 1883:1883 \ -p 2001:2001 \ -p 8081:8081 \ -p 8282:8282 \ -p 8088:8088 \ -p 8284:8284 \ -v /volume1/docker/iobroker:/opt/iobroker \ --restart always \ buanet/iobroker:latest
Frage 1: ist es korrekt, dass im Docker der neue Container NICHT mehr angezeigt wird sondern nur noch über Portainer?
Frage 2: Als ich noch das Bridge Network verwendet habe, konnte sich ioBroker direkt zur Influxdb im anderen Container verbinden. Das geht über das MACVLAN jetzt nicht mehr:
influxdb.0 2022-12-30 17:25:42.927 error Error: connect EHOSTUNREACH 192.168.178.181:8087 influxdb.0 2022-12-30 17:25:39.916 info Influx DB Version used: 1.x influxdb.0 2022-12-30 17:25:39.915 info Connecting http://nas.fritz.box:8087/ ...
Muss die jetzt auch mit in das MACVLAN?
Danke
Henri -
@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Der Container läuft in einem MACVLAN.
Außerdem im Multihost-Betrieb. Zum Kopieren der Compose und erfolgreichem Starten sollte man diese Dinge beachten und ggf. anpassen.
Das iobroker-db_default-Netz habe ich, weil ich zusätzlich einen MySQL/InfluxDB-Container separat laufen habe. Auch da müsste man die IP-Adressen anpassen oder das Netzwerk komplett entfernen.Danke für die Vorlage.
Bei mir ist auch MACVLAN, Multihost etc drin
Aber ich schaue mir das mal an und werde mir das mal als Vorlage zum umstellen auf Stack/Compose annehmen. -
@hennerich sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Frage 1: ist es korrekt, dass im Docker der neue Container NICHT mehr angezeigt wird sondern nur noch über Portainer?
Jo, das ist wahrscheinlich nicht wirklich normal, ist aber das, was ich oben schonmal gesagt habe, dass Portainer nicht zu 100% mit Synology harmoniert. Ich persönlich nutze die Docker-Oberfläche im DSM nur um Portainer ein- oder auszuschalten.
Frage 2: Als ich noch das Bridge Network verwendet habe, konnte sich ioBroker direkt zur Influxdb im anderen Container verbinden. Das geht über das MACVLAN jetzt nicht mehr:
Muss die jetzt auch mit in das MACVLAN?Ja, bzw. auch nein.
Du kannst deine Influx auch hochfahren und deinen ioBroker zusätzlich in das Influx-Network ziehen. So ähnlich mache ich es ja auch (siehe compose-Datei oben).
Einfacher ist es allerdings wenn du die Influx auch in dein MACVLAN holst.@tugsi
Ich wünsche viel Erfolg und Vergnügen@bean
Gleiches Problem gerade beim Kollegen gehabt. Portainer Downgrade auf z.B. 2.15.1 brachte Erfolg. Damit ließ sich der gleiche Stack hochfahren - mit der neusten Portainerversion nicht.
Dazu einfach als Imageportainer/portainer-ce:2.15.1
nutzen und nicht daslatest
-
@hennerich sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Frage 2: Als ich noch das Bridge Network verwendet habe, konnte sich ioBroker direkt zur Influxdb im anderen Container verbinden. Das geht über das MACVLAN jetzt nicht mehr:
Nur zum Verständnis.
ioBroker im MACVLAN heißt, dass es für sich ein eigenes Netzwerk hat und eine eigene IP, zB 192.168.178.181
In Docker-Universum haben die ganzen Container eine IP-Adresse aus dem Bereich 172.17.0.x (im Normalfall).
Deswegen machst Du eine Bridge, dass quasi das Routing von deinem MACVLAN zum Docker-IP-Netzwerk macht.
IPV4 Subnet - 172.17.0.0/16 IPV4 Gateway - 172.17.0.1Deine Fehlermeldung sagt ja, dass influxdb die 192.168.178.181 nicht erreicht.
Logisch, weil der Container im 172.17.0.0/16 Netzwerk festhängt.
Du musst im ioBroker Container zusätzlich unter Netzwerke nicht nur das MACVLAN und die Bridge, auch das Netzwerk von influxdb eintragen.Oder Du gibst influx auch eine IP aus dem 192.168.178.x Bereich, also auch ein MACVLAN.
Ich habe bei mir noch ein Prioxmox-System und da läuft influx und grafana zusammen in einem LXC.
Vorteil, hat eine eigene IP-Adresse in meinem Heimnetzwerk und könnte auch von anderen Dingen angesprochen werden.Ist halt etwas tricky.
-
@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Einfacher ist es allerdings wenn du die Influx auch in dein MACVLAN holst.
@tugsi sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Oder Du gibst influx auch eine IP aus dem 192.168.178.x Bereich, also auch ein MACVLAN.
Es gibt keinen technischen Grund auch die Influx DB (oder andere Services wie grafana, redis, mariadb usw.) über MACVLAN in Betrieb zu nehmen! Das ist Quatsch und sollte auch nicht empfohlen werden. Immerhin ist einer der Vorteile von Docker, dass man die Services, die nicht direkt über das (Heim)Netzwerk erreichbar sein müssen komplett von diesem abschirmen kann. Brauch man doch einen Zugriff von Extern reicht man einen Port durch (wie bei einer Firewall)
Meine Empfehlung:
MACVLAN: iobroker (für den Zugriff von außen und erweiterte Netzwerkfunktionen)
Bridge: influxdb (kommuniziert intern mit iobroker und grafana), grafana (kommuniziert intern mit influxdb, Portfreigabe nach extern für web UI), ioBroker (kommuniziert intern mit influxdb)MfG,
André -
@andre sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Das ist Quatsch und sollte auch nicht empfohlen werden.
Stimmt, hatte soweit jetzt gar nicht nachgedacht... es reicht ja auch die Bridge bzw ein Port durchzureichen.
Wie ich ja schrieb, habe ich das auf ein CT im Proxmox, deswegen bin ich auf die IP-Adresse gekommen.
Manchmal sollte man so am Jahresende erstmal nachdenken -
Moin und gutes Neues. Mich hat heute auch ein Synology/Portainer Problem erwischt. Ich wollte auf die 7.2 updaten, indem ich die "recreate" Funktion genutzt habe.
Das Ergebnis:
iobroker startet kurz an, kommt aber nicht über Schritt 3/5 hinaus.
Die Meldung:
There was a problem detecting the admin instance of your iobroker.
Ich habe auch schon versucht, auf 7.1.2 downzugraden. Leider ohne Ergebnis.Es lief bislang tadellos unter Portainer, insofern finde ich jetzt keinen Punkt, an dem ich mit der Fehlersuche sinnvoll anfangen könnte.
Merci und Grüße, clfberlin
-
@andre
Ist ok, ist deine Empfehlung.
Ich sehe das etwas anders. Für mich ist es kein "Quatsch" sondern einfach persönliches Empfinden.
Ich habe nahezu alle Container in meinem MACVLAN. Einfach aus dem Grund, weil ICH es gerne habe, dass jeder Service seine eigene IP in MEINEM LAN bekommt. Auch eine Influx oder ein Grafana hat seine eigene IP in meinem Netzwerk. Mir missfällt es einfach, dass alles über die Synology-IP bzw. der FQDN erreichbar ist.
Aber wie gesagt, ist das genau so meine Meinung und Empfehlungen, wie Du eine andere hast@clfberlin sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Moin und gutes Neues. Mich hat heute auch ein Synology/Portainer Problem erwischt. Ich wollte auf die 7.2 updaten, indem ich die "recreate" Funktion genutzt habe.
Das Ergebnis:
iobroker startet kurz an, kommt aber nicht über Schritt 3/5 hinaus.
Die Meldung:
There was a problem detecting the admin instance of your iobroker.
Ich habe auch schon versucht, auf 7.1.2 downzugraden. Leider ohne Ergebnis.Es lief bislang tadellos unter Portainer, insofern finde ich jetzt keinen Punkt, an dem ich mit der Fehlersuche sinnvoll anfangen könnte.
Merci und Grüße, clfberlin
Hab ich vor zwei Posts schon was zu geschrieben. Downgrade deinen Portainer.
-
@hollywoot Jedem wie er es mag. Da du aber offenbar auch keinen technischen Grund siehst das so zu machen, einigen wir uns vielleicht darauf:
@andre sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Es gibt keinen technischen Grund auch die Influx DB (oder andere Services wie grafana, redis, mariadb usw.) über MACVLAN in Betrieb zu nehmen!
@clfberlin Hast du versucht von v7.1.2 auf v7.2.0 zu gehen? Waren alle deine Adapter und der js-controller vorher auf der aktuellsten (stable) Version?
Folgendes würde ich versuchen:
- Container neu einmal neu anlegen, das Recreate vom Portainer ist immer mal wieder buggy. Alternative: Bau dir einen Stack! Dann vermeidest du in Zukunft Bugs der Portainer web UI bei Recreate oder Duplicate/ Edit.
- Umgebungsvariable DEBUG hinzufügen und auf true setzen. Das macht, dass der Container an der Stelle wo es bei dir hakt stehen bleibt und weiter läuft. So hast du die Möglichkeit auf die Kommandozeile zu gehen und z.B. ein
iobroker status
auszuführen. Eventuell bekommen wir über die Ausgabe mehr Infos warum es Probleme bei der Erkennung der Admin Instanz gab. - Poste das komplette Log deines Containers beim Start. Nur mit der Fehlermeldung kommen wir hier nicht weit.
@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Hab ich vor zwei Posts schon was zu geschrieben. Downgrade deinen Portainer.
Hast du dazu mehr Infos? Gibt es da einen bekannten Issue bei Portainer? (Link?)
Ich denke das Portainer Downgrade ist den zweiten Schritt vor dem ersten machen.@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
@bean
Gleiches Problem gerade beim Kollegen gehabt. Portainer Downgrade auf z.B. 2.15.1 brachte Erfolg. Damit ließ sich der gleiche Stack hochfahren - mit der neusten Portainerversion nicht.
Dazu einfach als Image portainer/portainer-ce:2.15.1 nutzen und nicht das latestDu sprichst vom Stack. @bean hat den Container manuell erstellt. Ich würd erstmal versuchen neu anzulegen.
MfG,
André -
Hab ich vor zwei Posts schon was zu geschrieben. Downgrade deinen Portainer.
Ja, danke - ich war allerdings noch auf 2.16.1. Hatte bisher nicht auf 2.16.2... Ach, Moment - Du schriebst ja 2.15.1. Oh Mann. Ok, probiere ich gleich... Ich sage Bescheid.
Und gleich noch eine Zusatzfrage:
Ich habe in der Zwischenzeit einen neuen Container aufgesetzt und auf ein anderes Verzeichnis gemappt.
Im ersten Schritt habe ich den gesamten Inhalt des vorigen Ordners dorthin kopiert, also /iobroker-data, /node_modules etc.
Diese Installation brach beim Start (erwartungsgemäß) mit demselben Fehler ab.
Dann Ordner geleert und wieder Container aufgesetzt. In der frischen Installation dann ein Backup hergestellt. Es fehlten viele Dinge (vor allem ins Sachen VIS). Also habe ich iobroker gestoppt und gezielt eine ganze Reihe an Ordnern rüber kopiert (mit Option "überschreiben"). Das immer schrittweise. Also Ordner kopiert, iobroker gestartet und überprüft, dann wieder aus und Ordner kopiert.
Die Parallelinstallation sieht eigentlich ganz gut aus. Es gibt nur beim Start Meldungen bzgl. homebridge-ewelink und einem fehlenden Keyword 'homebridge-plugin'. Dem gehe ich noch nach.
Ich habe jetzt also zumindest ein Fallback, falls Plan A nicht klappt. Nun aber zur Frage: Ich hatte gestern, bevor er abgeschmiert war, eine Menge Zeit in die Konfiguration gesteckt. Mir fehlen jetzt eigene angelegte Objekte aus 0_userdata und ein paar Blockly-Skripte. Weiß jemand, wo die gespeichert werden bzw. wie ich die von der Altinstallation in die neue Version ziehen kann?Vielen Dank und Grüße, clfberlin