NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
Hm.
Habe jetzt mal meinen Docker-Container von Host- auf Bridge-Modus umgestellt. Dann ist zwar das sudo-Problem weg, aber der ioBroker kann nicht mehr auf die MariaDB-10-Datenbank zugreifen, weil der Port 3307 anderweitig belegt zu sein scheint. Dummerweise erhalte ich auch bei anderen Ports immer dieselbe Meldung, wenn ich im Container den entsprechenden Port für Maria DB einstellen will. Das war auch der Grund, weshalb ich den Host-Modus verwendet habe. Jemand eine Idee, wie ich das im Bridge-Modus gelöst bekomme? Oder muss ich doch wieder auf den Host-Modus gehen?
-
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Oder muss ich doch wieder auf den Host-Modus gehen?
Um mir mal diese Frage selbst zu beantworten. Muss ich wohl. Denn leider habe ich im Bridge-Modus Probleme mit dem Zugriff auf meine Maria-DB-10-Datenbank. Die ist derzeit auf der DiskStation als Paket installiert und unter Port 3307 erreichbar. Wenn ich den Port aber im Container aktivieren will, kommt immer der Hinweis, dass er bereits belegt sei. Egal, welchen Port ich hier verwenden möchte, es ist immer dasselbe Problem.
Also besser doch wieder zurück zum Host-Modus.
Warum nicht MACVLAN? Nun, da erinnere ich mich an Probleme mit dem yahka-Adapter, denn die Homekit-Steuerzentrale konnte die entsprechende Homebridge nicht finden.
-
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Denn leider habe ich im Bridge-Modus Probleme mit dem Zugriff auf meine Maria-DB-10-Datenbank. Die ist derzeit auf der DiskStation als Paket installiert und unter Port 3307 erreichbar. Wenn ich den Port aber im Container aktivieren will, kommt immer der Hinweis, dass er bereits belegt sei.
Verstehe ich nicht. Warum willst du den Port auch im Container öffnen? Der ist doch nur für die eingehende Verbindung zur Datenbank interessant? Außerdem brauchst du für die Verbindung zur Datenbank überhaupt keinen Port öffnen. Im Bridge Netzwerk ist das Gateway gleich deiner Disk Station. Versuch mal im iobroker als Verbindung zur Datenbank das Gateway aus dem Bridge Netzwerk ein zu tragen und dann den Port 3307... Sollte eigentlich gehen...
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Warum nicht MACVLAN? Nun, da erinnere ich mich an Probleme mit dem yahka-Adapter, denn die Homekit-Steuerzentrale konnte die entsprechende Homebridge nicht finden.
Und das funktioniert im Bridged Mode?
MfG,
André -
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Hm. Da sehe ich aber keinen Zusammenhang zu dem bei mir angezeigten Fehlercode 1. Oder habe ich da ein Verständnisproblem?
Ja. Habe mich mal auf die Suche gemacht. Der Fehler sagt zwar Fehlercode 1. Problem ist aber das was danach kommt...
Das ist genau der Fehler aus dem Issue beim Adapter. Offenbar ist das Problem, dass die Config Datei vom Open SSL nicht gefunden wird. Hab gerade mal versucht das mit den Workarounds die ich so gefunden habe "einfach" zu fixen. Leider ohne Erfolg. Denke auch nicht dass das was ist, was im Container gefixt werden muss. Betrifft wohl generell das OS Debian Buster. Sollte also eher im Adapter gefixt werden oder sogar in phantomjs(???).
Sorry.MfG,
André -
@andre sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
...Versuch mal im iobroker als Verbindung zur Datenbank das Gateway aus dem Bridge Netzwerk ein zu tragen und dann den Port 3307... Sollte eigentlich gehen...
Jepp. So funktionier es.
Und das funktioniert im Bridged Mode?
Nee. Sehe gerade, dass die Homebrigdes im Bridged Mode doch nicht gefunden werden. Gibt's da ggf. auch einen Workaround?
@andre sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Sollte also eher im Adapter gefixt werden oder sogar in phantomjs(???).
Alles klar. Das hilft mir zumindest insofern weiter, als ich nicht mehr weitersuchen muss. Danke.
EDIT: Hab gerade gesehen, dass du ja auch schon was im betreffenden Issue zum phantomjs-Adapter gepostet hattest.
-
So, hab die Lösung für das phantomjs-Problem unter Debian Buster gefunden. Und zwar habe ich hier den nötigen Hinweis erhalten.
Einfach die foglenden beiden Einträge unter "Umgebung" hinzufügen.
Das war's.
Bis dann,
Thorsten
-
@dtp Auf dem Pfad mit der Umgebungsvariable war ich auch. Hatte ich bei github gelesen. Allerdings hatte ich zum Testen versucht die Variable innerhalb des Containers temporär zu setzen. Als das nicht geklappt hatte, hab ich das verworfen
MfG,
André -
@dtp
Da warst du aber hartnäckig ....(Gerade selber in der Umgebung alles eingegeben ... Top )
-
@Glasfaser Freut mich, dass es funktioniert.
@andre Macht es Sinn, wenn du diese Umgebungswerte als Standard für den Container mit aufnimmst?
-
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
@andre Macht es Sinn, wenn du diese Umgebungswerte als Standard für den Container mit aufnimmst?
PACKAGES: Klares NEIN. Ich kann nicht jedes Paket, dass von einem Adapter zusätzlich benötigt wird mit in das Image packen. Das Image ist Stand heute eigentlich schon viel zu groß.
OPENSSL_CONF: Muss ich mal recherchieren was das genau macht. Bisher ist das nirgends aufgefallen. Eventuell macht es eher Sinn das als Hinweis zum Adapter auf Github auf zu nehmen. So wie auch das benötigte Paket. Wenn diese Variable auch noch für andere Sachen gut ist spricht aber nichts dagegen die als Standard einzuführen...
MfG,
André -
Ich habe mich jetzt endlich an MACVLAN ran getraut. Mit kleinen Änderungen zu Andre’s Anleitung. Die IP-Range habe ich mit 192.168.178.0/24 angegeben. Also alle 255 IP-Adressen. Habe aber dann im Container eine feste IP-Adresse aus diesem Bereich vergeben. Ich denke, damit kann man bei mehreren Containern besser hantieren. Und das Gute daran, es funktioniert.
Frage an die Netzwerkprofis: Spricht etwas trotzdem gegen diese Konfiguration?
Trotz allem doch noch ein Problem. An der Synology 918+ hängt eine USV, die ich mit dem NUT-Adapter Abfrage. In der Adapterkonfiguration muss ich die IP der Synology angeben und bekomme diese Fehlermeldung:
error: nut.0 (6766) Error happend: Error: connect EHOSTUNREACH 192.168.178.14:3493
Jetzt habe ich auch hier gelesen, dass man aus Sicherheitsgründen aus dem Container nicht auf den Host zugreifen kann. Und genau das ist bei mir der Fall.
Man soll das umgehen können. Vielleicht kann mir das jemand erklären. Vielleicht gibt es auch ein gutes Tutorial mit Portainer. Ich kann immer nicht genau abschätzen ob es mein Problem löst. -
@Bongo Du hast also ein VLAN da skomplett von den Containern belegt werden soll?
Vielleicht nicht ganz zuuende gedacht aber geht...
Mit VLANs Gruppiere ich Thematisch, also z.B. Haustechnik hat eins und in diesem liegen unter anderem auch IOBRoker und Nodred... aber andere Container sind in einem anderen Vlan, daher denke ich mit 255 Adressen in einem VlLAN macht das nicht so viel Sinn?
Feste Adressen hab ich auch - und auch die Kontainernamen hab ich so vergeben sonst verliert man schnell den Überblick...
192.168.178.14:3493 ist die Adresse der Syno? auch im VLAN oder wie? welche VLANS hast du noch?
-
@Boardy
Als erstes bitte nicht davon ausgehen, dass ich ein Netzwerkprofi bin
Eigentlich habe ich nicht bewusst ein VLAN. Mit MACVLAN wollte ich eigentlich nur das leidige Port-Umleiten vermeiden und weil es Andre bevorzugt.Mein Adressbereich liegt bei 192.168.178.0. Die Syno hat 192.168.178.14 und der ioBroker 192.168.178.28.
-
@Bongo Sorry ich versteh gerade nicht was dann ein VLAN bringen soll
-
@andre sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
PACKAGES: Klares NEIN.
OPENSSL_CONF: Muss ich mal recherchierenAlles klar. Danke für deine schnelle Antwort. Dann muss ich mir die Einstellungen für etwaige spätere Container-Updates wohl einfach merken.
-
@Bongo sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Mein Adressbereich liegt bei 192.168.178.0. Die Syno hat 192.168.178.14 und der ioBroker 192.168.178.28.
Da tanzt du aber auf Messers Schneide! So wie ich das verstehe hast du dem MACVLAN dein gesamtes Netz verpasst in dem auch deine Synology liegt und in das vermutlich der DHCP deines Routers IP-Adressen vergibt? Falls ja, mag es jetzt vielleicht gehen. Du hast dann aber unter umständen zwei konkurrierende DHCP Server im Netz. Einen im Router, einen im MACVLAN. Viel Spaß wenn der eine eine IP Adresse vergibt, die der andere schon vergeben hat. Ich würde es nicht so lassen. Zumal du das MACVLAN ganz einfach auf z.B. 6 IP Adressen beschränken kannst. Mehr wirst du sowieso nicht brauchen!!!
Kleiner Service von mir, versuchs mal damit im MACVLAN. Dein ioBroker könnte dann z.B. die .121 bekommen:
https://www.heise.de/netze/tools/netzwerkrechner/Für das Problem dass du den Host nicht erreichst ist nicht die Sicherheit zuständig. Das liegt m. E. schlicht daran, dass das nicht geroutet werden kann. Hier hilft es wenn du ein zusätzliches Bridge Netzwerk anlegst, es deinem ioBroker Container zusätzlich zuweist und dann aus dem Container die DS über die IP des Gateways ansprichst. Ist alles hier irgendwo im Thread beschrieben. Alternativ findest du auch Infos Dazu in meinen Tutorials (Link siehe Signatur).
MfG,
André -
Hi,
ich verwende Iobroker mit Docker auf einer Synology Diskstation 412+ mit Ramupgrade auf 4 GB.Alles funktioniert soweit gut aber Admin, Vis-Editor und Flot reagieren sehr langsam.
Öffnen dauert bis zu 1 Minute bis alles geladen ist.
z. B. Admin: der Hintergrund und die Seitenstruktur ist innerhalb 1 bis 2 sec. geladen, der Inhalt und das Menü erscheint erst nach 1 Minute.
CPU und RAM-Auslastung sind niedrig, das sollte nicht das Problem sein.Es macht keinen Unterschied ob ich Bridge oder Host verwende.
Updates von Adaptern dauern ebenfalls ewig.
Als anderen Container habe ich noch Portainer laufen, hier jedoch auf einem andern Port als den was Iobroker verwendet.
Hier läuft alles schnell.Was kann es da haben?
Issue habe ich auf Github erstellt, wurde aber hierher verwiesen, da hier die Diskstation Experten sindLG
Markus -
@andre said in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Für das Problem dass du den Host nicht erreichst ist nicht die Sicherheit zuständig. Das liegt m. E. schlicht daran, dass das nicht geroutet werden kann. Hier hilft es wenn du ein zusätzliches Bridge Netzwerk anlegst, es deinem ioBroker Container zusätzlich zuweist und dann aus dem Container die DS über die IP des Gateways ansprichst. Ist alles hier irgendwo im Thread beschrieben. Alternativ findest du auch Infos Dazu in meinen Tutorials (Link siehe Signatur).
MfG,
AndréNach Tagen der Recherche habe ich nur rausgefunden wie das gemeint ist. Denke ich
Ich habe es für mich mal so dokumentiert. Ein Bridge-Netzwerk erstellt:
Im ioBroker Container zugefügt:
Die Syno ist das Gateway: 172.18.0.1
Die Syno kennt den ioBrocker mit: 172.18.0.3
Bei meinem Problem mit dem NUT-Adapter musste ich im Adapter 172.18.0.1 eintragen.
In der USV-Konfiguration muss die 172.18.0.3 eingetragen werden:
So weit ist es gut.
Jetzt hat sich nach dem Neustart des Containers die IP auch 172.18.0.2 geändert. Solange ich das mit nur einem Container mache wird es wohl immer die 172.18.0.2 bleiben. Kann man die IP auch fest machen? -
@bongo Genau so war es gemeint.
IP lässt sich im portainer leider nur für ein Netzwerk festlegen. Wenn du IPs für beide Netze festlegen willst musst du mit Stacks (Docker-compose) arbeiten. Da kannst du das machen.MfG,
André -
Hallo Andre,
ich hoffe, ich bin hier richtig mit meiner Frage. Ich nutze dein Image auf meiner Diskstation im Docker-Container. Für ein python-Skript, welches mir Daten meiner Lüftung auf IoBroker zur Verfügung stellt, da es (noch) keinen Adapter gibt, benötige ich mind. Python 3.6, da f-Strings im Skript genutzt werden.
Leider kenne ich mich jetzt nur rudimentär mit Linux und den Distriutionen aus, aber aktuell ist nur Python in der Version 3.5.3 vorhanden und 3.6 nicht verfügbar, oder? Wie bekomme ich das drauf?
Danke für eure Hilfe