NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@Kraxelhuber sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Ich plane bei mir eine Multihost-Lösung aufzubauen. Derzeit habe ich zwei ioBroker Instanzen jweils im Docker Container laufen. Die Hauptinstanz läuft auf einer Synology Diskstation, der zukünftige Slave im Container auf einem RPi.
Multihost ist zwar im Container noch beta, läuft bei mir aber schon seit einiger Zeit in ähnlicher Konstellation mit zwei slaves ohne Probleme.
In der Beta-Readme habe ich auch schon etwas mehr geschrieben:
Multihost (beta)
With the help of the ENV "IOB_MULTIHOST" and the ENVs for objects and states db connections (see ENVs table above) it is now possible to run a container as standalone, multihost master or multihost slave. This is more or less a feature for advanced users. Please make sure you know how ioBroker multihost is working and set the ENVs as with ìobroker setup custom.
For general information about iobroker multihost feature please see official ioBroker documentation.Also, nach Möglichkeit zum Testen die aktuelle Beta verwenden. In der ioBroker Doku nachlesen wie Multihost überhaupt funktioniert. Stichwort States und Objects DB.
Die Umgebungsvariable IOB_MULTIHOST beim Master setzen. Je nach verwendetem Netzwerk (bei Bridge) müssen auch die Ports 9000 und 9001 geöffnet werden.
Für den Slave ebenfalls die Umgebungsvariable IOB_MULTIHOST setzen. Außerdem die Variablen für objects und states DB, denn der Slave greift ja auf die DBs des Masters zu.
Slave starten und er sollte in der ioBroker Web UI auftauchen.@Kraxelhuber sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Aber ich muss doch sicherlich den Multihost Modus aktivieren, Stichwort iobroker multihost enable (auf dem Master) und iobroker multihost connect auf dem Slave System, richtig?
Nein. Das wird nicht benötigt!
Quick and Dirty Beispiel aus meinem Setup. Achtung für die States DB nutze ich einen Redis Container!
...wird es auch ein Tutorial zu geben.
MfG,
André -
@Berchemer sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Nur werde ich versuchen, das System auf einem x86 unter Ubuntu-Server
Mhhh... https://github.com/buanet/docker-iobroker/tree/master#iobroker-for-docker
Since v4.0.0 the image is available for the following architectures: amd64, armv7hf, aarch64.
Dafür habe ich kein Image parat...
@Berchemer sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
und nicht unter einer nackten debian-Version
Verstehe ich nicht, wo hat denn wer was von Nackten gesagt? Solange es Linux ist und Docker drauf läuft ist es Wurscht. Allerdings spielt die Architektur eine Rolle (siehe oben)...
@Berchemer sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Es geht mir nur um die Frage, ob ich redis und influxdb/grafana als eigenständige Dockerinstallationen auf dem System installieren soll, auf dem auch der ioBroker-Master als eigenständige Dockereinrichtung laufen wird oder ob ich in einer Docker-Maschine ioBroker, influxdb, grafana und redis installieren soll.
Ahhhhhh! Wenn ich "Docker-Maschine" höre stellen sich mir sofort die Nackenhaare auf! NATÜRLICH wird für jede Anwendung ein eigener Docker Container verwendet! Wenn man es ganz genau nehmen würde, müsste sogar jeder ioBroker-Adapter in einem eigenen Container laufen (was praktisch aber nicht geht)... Du brauchst dazu auch nur eine "Dockerinstallation". Docker wird als Dienst auf dem Host installiert. Die Anwendungen startest du als Container unter Verwendung des Docker Dienstes.
Also die Antwort auf deine Oder-Frage: JA. Jeder Anwendung sein Container. Verbunden über ein gemeinsames Bridge Netzwerk.
Und lies mal zu docker-compose. Damit kannst du mit einem "Config-File" alle Container inkl. Netze mit einmal deployen...Viel Erfolg!
MfG,
André -
@Kraxelhuber said in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Nach meinem ersten Verständnis muss die Environment Variable IOB_MULTIHOST auf master gesetzt werden. Das ist ja auch der Standard, also ist der Container auf der Syno Diskstation schon vorbereitet, oder?
Der Container auf dem RPi erhält dann logischerweise die Environment Variable IOB_MULTIHOST mit dem Wert slave.Wie weise ich dem Slave den richtigen Master zu?
-
@andre sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Für den Slave ebenfalls die Umgebungsvariable IOB_MULTIHOST setzen. Außerdem die Variablen für objects und states DB, denn der Slave greift ja auf die DBs des Masters zu.
Indem du dem Slave sagst wo die Master DBs liegen...
MfG,
André -
@andre sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
@Berchemer sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Also die Antwort auf deine Oder-Frage: JA. Jeder Anwendung sein Container. Verbunden über ein gemeinsames Bridge Netzwerk.
Und lies mal zu docker-compose. Damit kannst du mit einem "Config-File" alle Container inkl. Netze mit einmal deployen...Viel Erfolg!
Danke erst einmal
-
@andre said in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Indem du dem Slave sagst wo die Master DBs liegen...
Ja super, das hat bei mir funktioniert.
Habe jetzt einen neuen Container jeweils mit der Beta Version auf der DiskStation (master) und dem RPi (slave) eingerichtet. Grundsätzlich würde ich aber lieber mit der Stable Version arbeiten. Was denkst du denn, wann die Multihost Funktionalität in die Stable Version integriert wird?
-
Ach Leute, habt doch nicht immer so viel Angst vorm bösen Beta...
Tatsächlich ist es doch so, dass ich das "beta" hinter die Version schreibe und größtenteils auch den Betatest mache...
Und wenn es Läuft dann zähle ich die Versionsnummer hoch und tadaaa, ein neues Stable Release...
So wie gestern auch wieder...Build ist durch, Version gerade raus: https://github.com/buanet/docker-iobroker/releases/tag/v5.1.0
Image steht im Docker Hub zur Verfügung.MfG,
André -
Hi,
von Zeit zu Zeit muss auch mal eine Synology gebootet werden. Bei mir wird der Container nicht neu gestartet. In der Synology Docker App kann man "Automatischen Neustart aktivieren". Ich denke wenn man mit Portainer arbeitet sollte man da nichts machen. Oder doch?
Im Portainer habe ich nichts gefunden. Der Portainer selbst wird automatisch gestartet. Wie geht das mit dem ioBroker Container? -
@Bongo sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
In der Synology Docker App kann man "Automatischen Neustart aktivieren".
Diese Einstellung gibt es im Portainer auch. Da geht es um die restart policy des Containers. Also was macht der Container wenn er z.B. aufgrund eines Fehlers beendet wird. In der Regel stellt man das so ein, dass der Container sich dann selbst neu startet.
Eine dedizierte Einstellung über die man sagen könnte, starte diesen und jenen Container beim Start des Docker Dienstes kenne ich nicht...
MfG,
André -
Kleines Update
Mit v5.1.0 ist im Docker Hub seit heute Morgen eine neue Stable Version des ioBroker Container Images verfügbar. Details wie immer in der readme.md auf Github
Für alle die ihren ioBroker Docker container automatisch Updaten möchten habe ich jetzt auch ein latest Tag für eine bestimmte Version zur Verfügung gestellt. Aktuell ist das "latest-v5"
Die Verwendung des Tags vermeidet ein automatisches Upgrade auf v6 und bleibt stattdessen immer beim letzten stable innerhalb der v5.Für mehr Infos und Updates zu meinen Tutorials und Projekten abonniert meinen Telegram Kanal.
MfG,
André -
@andre
Danke läuft -
@andre
Danke für den Tipp. Ich habe 3 Container wo ich bei einem zum Testen diese Einstellung von Never auf Always geändert habe. Nach dem Restart waren dann alle 3 Container gestartet.
Hmm, ich hätte schwören konnen, dass es beim letzten Mal nicht so war. Das war allerdings kein Reboot sondern ein unerwarteter shutdown. Vielleicht ist das was anderes.Ich habe noch ein paar alte Test-Container die nicht gestartet sind. Ich vermute was zuletzt gestartet war wird nach einem Reboot wieder gestartet.
Mal sehen was beim nächsten unerwarteten shutdown passiert, der hoffentlich nicht eintreten wird
-
@Bongo sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Ich vermute was zuletzt gestartet war wird nach einem Reboot wieder gestartet.
So ist es bei reboot eigentlich. Die Restart Policy sagt eigentlich nur, was passiert wenn der container fehl schlägt...
Bisher hatte ich aber auch noch nie Probleme mit dem Restart der DS... -
@andre said in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Build ist durch, Version gerade raus: https://github.com/buanet/docker-iobroker/releases/tag/v5.1.0
Image steht im Docker Hub zur Verfügung.
MfG,
AndréOK, habe jetzt von der Beta Version ein Backup erstellt (über BackitUp Adapter), ein neues Datenverzeichnis auf meiner DiskStation erstellt, dass Backup File dort hinein kopiert und mir die latest-v5 gezogen. Habe den Cointainer neu aufgesetzt (mit denselben Einstellungen wie mit der Beta, also Multihost master).
Die Logs sehen auch gut aus. Das Backup File wurde erkannt, ein Restore erfolgreich durchgeführt. Leider kann ich jetzt aber über den Browser nicht mehr auf die ioBroker Oberfläche zugreifen. Ein Ausflug in den Terminal zeigt aber, dass der ioBroker läuft.
Muss ich bei einem Restore auf irgendetwas Besonderes achten?
-
-
@Kraxelhuber sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
OK, habe jetzt von der Beta Version ein Backup erstellt (über BackitUp Adapter), ein neues Datenverzeichnis auf meiner DiskStation erstellt, dass Backup File dort hinein kopiert und mir die latest-v5 gezogen.
Warum? Das brauchst du nur machen wenn du z.B. Von v4 auf v5 migrierst. Innerhalb der v5 (auch von beta auf latest) muss das nicht sein. Sichere den eingehängten iobroker Ordner und häng ihn so wie er ist in den neuen Container...
Lies mal hier: https://smarthome.buanet.de/2020/10/iobroker-docker-image-updates-upgrades/
MfG,
André Germann -
@Glasfaser said in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Dein Hostname hat sich geändert ....
mache mal das:
iobroker host thisWenn ich den Container stoppe, komme ich logischerweise nicht mehr ins Terminal. Wie kann ich also den Host anpassen?
-
@Kraxelhuber sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
iobroker host this
in der Konsole
pkill -u iobroker iobroker host this
und dann den Container neu starten
-
@andre said in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Warum? Das brauchst du nur machen wenn du z.B. Von v4 auf v5 migrierst. Innerhalb der v5 (auch von beta auf latest) muss das nicht sein. Sichere den eingehängten iobroker Ordner und häng ihn so wie er ist in den neuen Container...
Ja, das hatte ich auch zuerst so gemacht. Damit kam ich zwar wieder auf die Web-Oberfläche, allerdings lief dann ein Click auf "Adapter" oder "Logs" völlig ins Leere.
Ich vermute, dass liegt dann auch daran, dass ich den Hostnamen geändert habe.
-