NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@tugsi Ich habe nochmal ein wenig experiementiert und muss meine Aussage von weiter oben teilweise korrigieren. Alle Container die eine Adresse aus dem gleichen MACVLAN haben können sich über diese IP Adresse untereinander erreichen, und auch alle anderen Geräte im Netzwerk ausserhalb des MACVLAN´s auf der Synology können erreicht werden (z.B. eine CCU oder HUE Bridge).
Lediglich der Docker Host ist nicht mit seiner "normalen" IP Adresse erreichbar, das wird im wohl Linux Kernel verhindert und ist eine Sicherheitsfunktion.
Man kann das ganze aber aushebeln in dem man auf der Synology eine weitere Netzwerkbridge konfiguriert. Es gibt da verschiedene Anleitungen im Netz, zb hier
https://www.synology-forum.de/showthread.html?103178-macvlan-Zugriff-auf-den-HostWenn du also so eine Bridge vorher nicht konfiguriert hattest dann dürfte ein Zugriff aus dem IOBroker Container auf die Synology via der 192er Adresse nie funktioniert haben, aber so genau lässt sich das aus der ferne nicht diagnostizieren.
-
@rostnagel bist Du mit dem Bluetooth stick schon weiter gekommen? Ich habe ihn bisher auch nicht zum laufen bekommen.
-
@hetti72 Da hättest du nicht viel experimentieren müssen Ich habe zum Thema MACVLAN hier schon einige Male referiert:
https://forum.iobroker.net/search?term=MACVLAN &in=posts&matchWords=all&by[]=andre&sortBy=timestamp&sortDirection=desc&showAs=posts
Kann daher deine Erkenntnisse nur bestätigen. In einem der Beiträge habe ich auch einen Auszug der Docker Doku gepostet. Da steht es auch nochmal so drin.MfG,
André -
@andre Ich hab mir schon gedacht das es die Info bestimmt irgendwo in diesem kleinen und überichtlichen Thread zu finden gibt, hab es aber auf anhieb nicht gefunden. Also hab ich mir die Information einach mal selbst erarbeitet und dadurch wieder was gelernt das Thema insgesamt besser verstanden.
Das Docker Thema ist mir Beruflich zwar nicht fremd, aber da arbeite ich mit Kubernetes und Rancher und da läuft das alles ein wenig anders.
Vor allem die Einschränkungen die man auf der Synology hat, machen das Thema nicht einfacher.gruß,
Frank -
@hetti72 sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Vor allem die Einschränkungen die man auf der Synology hat, machen das Thema nicht einfacher.
Da sagst du was. Obwohl es eigentlich gut läuft wenn man die Klippen (z. B. den Host Mode) zu umschiffen weiß...
Mittlerweile läuft mein produktiv iobroker auch nicht mehr auf der DS. Ich sehe da seitens Synology irgendwie keinen Fortschritt mehr. Alle warten auf die Version 7 vom DSM. Obwohl ich das eher kritisch sehe, denn da wird es wahrscheinlich einfach nur andere Themen geben. Wir werden sehen.Was die Übersichtlichkeit des Threads angeht, da hast du wohl recht. Kann da immer nur die erweiterte Forensuche empfehlen.
Hatte auch schon mal angefangen die ewig wiederkehrenden Themen inkl. Docker Basics in einer eigenen Knowledge Base zu sammeln (https://buanet.de/knowledge-base). Aber Das ist eben auch ein recht zeitaufwändiges Unterfangen wenn man eine gewisse Qualität beibehalten möchte...
Um so schöner ist es zu sehen, daß es nicht nur die "geht nicht"-Meckerfraktion gibt, sondern auch immer wieder Leute die sich Wissen selbst erarbeiten können und wollen. Und gerade was den Umgang mit Docker angeht, sehe ich leider immer wieder große Wissens- und Verständnis-Lücken wenn es um die puren Basics geht...MfG,
André -
@Daniel76 sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@rostnagel bist Du mit dem Bluetooth stick schon weiter gekommen? Ich habe ihn bisher auch nicht zum laufen bekommen.
nicht wirklich... ich dümpel noch mit der V2 umher... 20 adapter stehen zur aktualisierung bereit
ehrlich gesagt hab ich auch keine lust noch nen Raspberry irgendwo aufzubauen der allein für die anwesenheitserkennung zustandig ist.
kann die DS ja auch. aber das durchreichen ist nicht mehr so einfach wie zuvor.entweder ich gehe wieder komplett auf den pi oder es gibt noch ne lösung.
auf die backup funktionaltät und den großen ram der ds möchte ich eigtl nicht verzichten
-
@rostnagel sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
entweder ich gehe wieder komplett auf den pi oder es gibt noch ne lösung.
Schon mal den Host-Modus ausprobiert? Bei mir läuft damit alles absolut rund und problemlos auf meiner DS718+. Portainer, MACVLAN und Bridge mögen ja durchaus ihre berechtigten Vorteile bieten, aber wenn man nicht mit allzu vielen Docker-Abbildern arbeitet, dann sollte der sehr einfach zu handhabende Host-Modus absolut ausreichen.
@andre: Machst du noch ein neues Abbild mit node.js 12.x? Ist zwar aktuell nicht notwendig, wird aber bei Verwendung des js-controllers ab Version 3 angeraten.
-
@dtp sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@andre: Machst du noch ein neues Abbild mit node.js 12.x? Ist zwar aktuell nicht notwendig, wird aber bei Verwendung des js-controllers ab Version 3 angeraten.
Ist schon da. Das aktuelle Beta Image läuft mit Node 12.
https://github.com/buanet/docker-iobroker/blob/beta/README.mdHabe mir gedachrt sobald der js-controller v3 als stable kommt, mache ich eine Image Version 5. Bis dahin könnt ihr mit der Beta testen.
MfG,
André -
@andre said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Ich habe hier mal ein Beispiel. Nur mit ioBroker-Container und den Netzwerken (MACVLAN + internes Bridge Netzwerk). Werde dazu auch noch ein Tutorial schreiben. Dann aber gleich zusammen mit einem Redis-Container. Dazu muss die aktuelle Beta aber erst zum "latest" werden (wegen der Möglichkeit gleich beim Setup Redis zu konfigurieren).
version: "2" services: iobroker: container_name: iobroker image: buanet/iobroker:latest hostname: iobroker restart: always networks: macvlan: ipv4_address: 192.168.0.73 bridge: ipv4_address: 172.18.0.2 environment: - PACKAGES=nano volumes: - /volume1/docker/iobroker_data:/opt/iobroker networks: macvlan: driver: macvlan driver_opts: parent: eth0 ipam: config: - subnet: 192.168.0.0/24 gateway: 192.168.0.1 ip_range: 192.168.0.72/29 aux_addresses: net-address: 192.168.0.72 # Reservierte Adresse, damit Docker nicht die Netzadresse vergibt. bridge: driver: bridge ipam: config: - subnet: 172.18.0.0/16 gateway: 172.18.0.1 ip_range: 172.18.0.1/24
MfG,
AndréSag mal, nutzt du diese yaml Config eigentlich unter der Stack Funktion die Portainer bietet oder direkt mit docker-compose?
Ich hatte ja ursprünglich Probleme dass Portainer Stacks nicht funktionierte, wenn ich MACVLAN nutze. Will das Thema aber doch noch mal angehen.
Hast du vielleicht ein funktionierendes Beispiel für den Portainer Stack? Im Internet findet man dazu relativ wenig Informationen.... -
@Holzlenkrad
Das Beispiel das du zitiert hast ist ein Beispiel das ich im Portainer Stack nutze und das eigentlich so funktionieren sollte. Bei den Stacks im Portainer handelt es sich ja praktisch um docker-compose.MfG,
André -
@andre
Den größten Unterschied den ich sehe ist, dass du dein macvlan im yaml File definiert hast. Kannst du das Netzwerk denn mit Cotainern nutzen, die nicht in dem Stack sind?Ich hab das MACVLAN halt mit docker create network in der Console angelegt und schreibe in der docker-compose dann einfach
macvlan:
external:
name: macvlan0Vielleicht mag Portainer das nicht...
-
@hetti72
Sorry für die späte Rückmeldung, aber kam vorher nicht dazu.
Danke für den Link.
Das Problem was ich habe ist, dass ich auf diversen "Baustellen" gleichzeitig arbeite, sowohl privat, wie auch auf meiner Arbeit und da verschwinden dann schon mal Sachen ganz tief nach hinten ...
Und wenn man einmal etwas eingerichtet hat, nach Anleitung zB und es läuft, dann kümmert man sich nicht mehr drum und vergisst schnell, was man wie und wo getan hat.
Mir ist eben aufgefallen, dass der Adapter auf eine 192er-IP schaute und ich sonst an mein Netzwerk ja nichts geändert habe.
Die Suche hier war etwas mühselig, ich bin nicht wirklich auf das richtige Ergebnis gestossen, deswegen habe ich hier gepostet.
Mir war bewusst, dass eine direkte Abfrage an den Host nicht geht, aber deswegen ja das Bridge-Netzwerk.
Aber egal, ich setze einfach die "Docker"-IP ein und es klappt.
Danke für Deine Mühen!@andre Ich kenne Deine Knowledges-Base, wäre es nicht sinnvoll, den 1.Post zu editieren und dort auch den Link mit einzubauen?!
Des Weiteren, wäre es vielleicht hilfreich ein Wiki zu errichten, wo jeder eine Hilfe Einpflegen kann? Ich weiß es kann auch schnell zum Chaos führen, aber andersherum könnte man so auch ein Pool an kleinen Helfern haben, hier im Thread ist echt mühselig (auch mit der erweiterten Suche) den wichtigen Punkt zu finden. Aber das Problem haben alle Foren wo lange Threads enthalten sind. -
@Holzlenkrad sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Kannst du das Netzwerk denn mit Cotainern nutzen, die nicht in dem Stack sind?
Das habe ich noch nicht ausprobiert.
Es sollte aber auch gehen ein bereits bestehendes Netzwerk in der Stack definition (compose file) zu verwenden. Weiß nicht ob das bei dir von der Syntax so korrekt ist. Man muss da ein bisschen aufpassen, das man die korrekte compose file version verwendet. Portainer kann da aktuell nur bis Version 2...MfG,
André -
@tugsi sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@andre Ich kenne Deine Knowledges-Base, wäre es nicht sinnvoll, den 1.Post zu editieren und dort auch den Link mit einzubauen?!
Das kann man sicher machen, es steht aber leider noch nicht so viel drin. Was sicher auf meine Kappe geht.
Und das was drin steht bezieht sich aktuell eigentlich ausschließlich auf meine Tutorials und ist dort dann im Normalfall auch entsprechend verlinkt.Des Weiteren, wäre es vielleicht hilfreich ein Wiki zu errichten, wo jeder eine Hilfe Einpflegen kann? Ich weiß es kann auch schnell zum Chaos führen, aber andersherum könnte man so auch ein Pool an kleinen Helfern haben, hier im Thread ist echt mühselig (auch mit der erweiterten Suche) den wichtigen Punkt zu finden. Aber das Problem haben alle Foren wo lange Threads enthalten sind.
Das Problem mit dem Suchen kenne ich. Keine Frage.
Was das Wiki-Thema angeht, habe ich mich ganz bewusst für eine Knowledgebase und nicht für ein Wiki entschieden. Die Stärke eines Wikis ist gleichzeitig seine größte Schwäche. Jeder kann daran mitarbeiten, aber nur die wenigsten tun es halt wirklich gewissenhaft. Und dann passiert in der Regel das, was du selbst schon angesprochen hast. Ein Chaos aus halb fertigen Einträgen, Platzhaltern und im schlimmsten Fall irreführenden Informationen. Das wäre nicht gut.Was den Pool an kleinen Helfern angeht, da bin ich allerdings absolut offen. Bis jetzt ist diesbezüglich noch niemand auf mich zu gekommen. Wenn Qualität und Engagement passen hätte ich kein Problem damit auch mal ein paar "Gastautoren" mit Tutorials oder Knowledgebase Artikeln auf meiner Seite willkommen zu heißen. Die technischen Voraussetzungen sind da...
MfG,
André -
@andre Habe die 4.2.1beta mal im Testsystem aktiviert. → Keine Probleme
Danke, Ralf
-
Ich wollte das Image mal als Testsystem für iobroker missbrauchen.
Dafür wollte ich zum Test mal Node auf Version 14 aktualisieren und mit dem js-controller auf Version 3 laufen lassen.Hab den Container runtergefahren und mit einem tail -f /dev/null als entrypoint gestartet damit iobroker nicht läuft. Per docker exec rein in den Container.
Dort habe ich dann node-js aktualisiert und node -v erbrachte auch korrekt v. 14.3.
Also daraufhin wieder raus und container per docker-compose down wieder runter.
Den entrypoint habe ich wieder raus kommentiert damit der Container normal mit iobroker startet.Und siehe da: die Node-Version ist wieder auf 10.20.1
Egal was ich mache - es bleibt dabei.
Ich vermutete, dass ich die Änderungen am Container noch irgendwie übernehmen muss. Hierzu habe ich die Container-ID der Bearbeitung per docker commit ID iobroker versucht zu commiten - klappt aber nicht.Wie bekomme ich das also hin, dass Änderungen am Container auch nach dessen Neustart übernommen werden? Alles was in /opt/iobroker geändert wird ist ja persistent - nur der Rest halt nicht.
-
@Sylvan Da hast du leider ein Verständnisproblem. Beim Compose wird aus dem Image immer ein neuer Container erstellt. Demnach sind natürlich deine Änderungen immer weg (ausgenommen /opt/iobroker).
Zwei Möglichkeiten:- Wenn du mit Compose den Container erstellt hast nur mit start/ stop den container an sich starten/ stoppen
- Per docker build und meinen Files von Github ein eigenes Image erstellen und im Dockerfile die Node-Version anpassen.
Was dein Verfahren mit "tail -f /dev/null" angeht. Das ist überflüssig. Du kannst das auch erreichen wenn du im laufenden Container "pkill io" machst. Dann sind die Prozesse von ioBroker gestoppt und du kannst werkeln...
MfG,
André -
@andre said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Da hast du leider ein Verständnisproblem.
Davon bin ich fest ausgegangen - daher die Frage
Per docker build und meinen Files von Github ein eigenes Image erstellen und im Dockerfile die Node-Version anpassen.
Und wäre es nicht möglich per docker commit (oder was anderem?) aus dem aktuellen Zustand ein Image unter neuem Namen speichern? Ich würde dann wahrscheinlich danach beim compose dieses neue Image als Basis angeben.
Ansonsten habe ich bereits ein eigenes docker-image für iobroker wo ich vor allem bei den Rechtesachen dreist bei dir einiges abgeschaut habe. Aber dort hatte ich letztens Probleme den js-controller auf Version 3 zu hieven. Daher habe ich es mal mit deinem Image versucht.
Du kannst das auch erreichen wenn du im laufenden Container "pkill io" machst.
Das hilft viel - Danke! iobroker stop hat bei mir nicht geklappt da er meinte es würde gar kein iobroker laufen.
-
Hallo zusammen
Ich bin neu hier und würde mich gern an iobroker in docker Container wagen. Ich habe einen Raspberry pi 4 auf dem docker bereits installiert ist. Kann ich der offiziellen Anleitung folgen auch wenn sie für die synology gedacht ist? Ist das Image für den Raspi geeignet? Lese hier das es einige zum laufen bekommen haben? Was sind die Hauptschritte, die anders gemacht werden müssen?
-
@tinko
wieso probierst du es denn nicht einfach erstmal selbst? Was willst du kaputt machen? Docker ist doch schon installiert, also verwirfst du im Zweifel einfach den fehlerhaften Container und fängst von vorne an.Sofern Docker läuft, sind die restlichen Schritte identisch.
Fertige Docker-Compose Beispiele von diversen Usern gibt es auch hier im Thread....auch wenn die Suche sich ekelhaft gestaltet, es ist da (und noch gar nicht SO alt), du wirst es finden.
U.a. sind da sogar komplette Netzwerk-Konfigurationen dabei - mit copy-paste sollte das also alles in wenigen Minuten erledigt sein.