NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
-
@mumurik Ich hab jetzt zwar nicht alles gelesen, aber die "@eaDir" Verzeichnisse kommen wohl von der Medienindizierung. Hast du mal geschaut ob da bei dir vielleicht was aktiviert ist? Kann mir schon vorstellen, dass es ggf. ungünstig ist, wenn die DS den Ordner indiziert in dem dein iobroker liegt und dann dort vielleicht auch noch Verzeichnisse anlegt...
Im Zweifel würde ich mal probieren für den Ordner /opt/iobroker auf der DS einen anderen Pfad zu nehmen. Dann ne frische Container Installation machen und über restore ein Backup einspielen.MfG,
André -
Also, Indizierung war für den iobroker-Verzeichnis nicht eingeschaltet, aber die "@eaDir" Verzeichnisse wurden wohl nach der Migration automatisch angelegt (ich hatte vor kurzem eine Migration von DS213j zu DS220+).
Ich habe jetzt alle "@eaDir" Verzeichnisse manuell gelöscht und den Container neuangelegt -> keine Probleme mehr mit der Installation des Adapters!
@Glasfaser @dslraser @andre
Vielen lieben Dank an alle für die hilfreichen Tipps! -
@mumurik sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
wurden wohl nach der Migration automatisch angelegt
ich hatte vor kurzem eine Migration von DS213j zu DS220+dann passt das auch zu diesem Link @eaDir auf dem Synology NAS
Zitat :
Nach dem Zurückspielen eines Backups auf meinem Synology-NAS stellte ich fest, dass dieses, ohne mich zu fragen, überall seine @eaDir Verzeichnisse eingefügt hat.
keine Probleme mehr mit der Installation des Adapters!
Schön das es jetzt geht ...
War auch ein blöder Fehler am Anfang bis man darauf kommt !
-
Leider habe ich ein Problem mit dem Upgrade von 4.2.0 auf 5.0.0.
Habe mittels BackItUp ein Minimal-Backup erzeugt, den Container heruntergefahren, den Container gecloned und dabei das Image mit neuem Tag gepulled, sowie den Mount auf ein neues Verzeichnis umgebogen. In das root des neuen Verzeichnisses habe ich dann das backup gelegt und den Container hochgefahren.
Er erkennt zwar das Backup und versucht es auch einzuspielen, bricht aber ohne nennenswerte Meldungen ab, lediglich das restore.log enthält einen Fehler - den finde ich zwar im Forum, aber keiner der Hinweise scheint irgendwie zu passen.
Docker Log:
------------------------------------------------------------, --------------- 2020-10-26 15:06:17 ---------------, ------------------------------------------------------------, , ------------------------------------------------------------, ----- Welcome to your ioBroker-container! -----, ----- Startupscript is now running. -----, ----- Please be patient! -----, ------------------------------------------------------------, , ------------------------------------------------------------, ----- Debugging information -----, ----- -----, ----- System -----, ----- arch: x86_64 -----, ----- -----, ----- Versions -----, ----- image: v5.0.0 -----, ----- node: v12.19.0 -----, ----- npm: 6.14.8 -----, ----- -----, ----- ENV -----, ----- PACKAGES: vi -----, ----- SETGID: 1000 -----, ----- SETUID: 1000 -----, ------------------------------------------------------------, , ------------------------------------------------------------, ----- Step 1 of 5: Preparing container -----, ------------------------------------------------------------, , Installing additional packages is set by ENV., The following packages will be installed: vi..., E: Paket vi kann nicht gefunden werden., Done., , ------------------------------------------------------------, ----- Step 2 of 5: Detecting ioBroker installation -----, ------------------------------------------------------------, , ioBroker backup file detected in /opt/iobroker. Restoring ioBroker..., Done., , !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!, !!!!! IMPORTANT NOTE !!!!!, !!!!! The sartup script restored iobroker from a backup file. !!!!!, !!!!! Check /opt/iobroker/log/restore.log to see if restore was successful. !!!!!, !!!!! When ioBroker now starts it will reinstall all Adapters automatically. !!!!!, !!!!! This might be take a looooong time! Please be patient! !!!!!, !!!!! You can view installation process by taking a look at ioBroker log. !!!!!, !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!, , ------------------------------------------------------------, ----- Step 3 of 5: Checking ioBroker installation -----, ------------------------------------------------------------, , (Re)Setting folder permissions (This might take a while! Please be patient!)..., Done., , Fixing "sudo-bug" by replacing sudo in iobroker with gosu..., Done., , Looks like this is a new and empty installation of ioBroker., Hostname needs to be updated to iobroker.fritz.box..., The host for instance "system.adapter.admin.0" was changed from "dd5e0cc90d86" to "iobroker.fritz.box"., The host for instance "system.adapter.discovery.0" was changed from "dd5e0cc90d86" to "iobroker.fritz.box"., The host for instance "system.adapter.info.0" was changed from "dd5e0cc90d86" to "iobroker.fritz.box"., Done., , ------------------------------------------------------------, ----- Step 4 of 5: Applying special settings -----, ------------------------------------------------------------, , Some adapters have special requirements/ settings which can be activated by the use of environment variables., For more information take a look at readme.md on Github!, , ------------------------------------------------------------, ----- Step 5 of 5: ioBroker startup -----, ------------------------------------------------------------, , Starting ioBroker..., , host.iobroker.fritz.box check instance "system.adapter.admin.0" for host "iobroker.fritz.box", host.iobroker.fritz.box check instance "system.adapter.discovery.0" for host "iobroker.fritz.box", host.iobroker.fritz.box check instance "system.adapter.info.0" for host "iobroker.fritz.box", Send diag info: {"uuid":"7abd3182-d399-f7bd-da19-9550d8babede","language":"","country":"","hosts":[{"version":"3.1.6","platform":"Javascript/Node.js","type":"linux"}],"node":"v12.19.0","arch":"x64","adapters":{"admin":{"version":"4.0.10","platform":"Javascript/Node.js"},"discovery":{"version":"2.3.7","platform":"Javascript/Node.js"},"info":{"version":"1.7.2","platform":"Javascript/Node.js"}},"statesType":"file","objectsType":"file","model":"Intel(R) Celeron(R) CPU J3355 @ 2.00GHz","cpus":2,"mem":10282930176,"ostype":"Linux","city":""}, hash changed or no sources cached => force download of new sources,
Restore.log:
host.iobroker.fritz.box Using backup file iobroker_2020_10_26-13_13_56_backupiobroker.tar.gz host.iobroker.fritz.box Cannot find extracted file from file "/opt/iobroker/node_modules/iobroker.js-controller/tmp/backup/backup.json" Cannot save /opt/iobroker/iobroker-data/states.json: Error: EACCES: permission denied, open '/opt/iobroker/iobroker-data/states.json.bak'
Ich habe auch schon versucht ioBroker nackt als 5.0.0 hochzufahren, BackItUp zu installieren und darüber dann zu recovern - das bringt leider auch kein zählbares Ergebnis.
Habe ich irgendwo ein Brett vor dem Kopf? Ist das ein bekanntes Problem? Ich finde es gerade etwas erschreckend, dass scheinbar meine Backups bei einem Fresh Install gar nicht funktionieren...
-
@Satsh sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Ich habe auch schon versucht ioBroker nackt als 5.0.0 hochzufahren,
dann den Ordner erstellen
mkdir /opt/iobroker/backups
dort dein Backup rein , dann
pkill -u iobroker iobroker restore iobroker_2020_10_26-13_13_56_backupiobroker.tar.gz iobroker start
eventuell wenn es danach nicht geht
pkill -u iobroker iobroker host this iobroker start
-
Das bin ich zwischendurch auch schon selber angegangen und es scheint auch mit leichteren Hopsalas funktioniert zu haben.
Hat erst mal ein bisschen gedauert, bis ich gemerkt habe, dass unter 5.0.0 "pkill io" gleich den ganzen Container killed, dachte immer irgendwas wäre jetzt ganz kaputt... Zum "Glück" liefen ja nur drei Instanzen, die ich dann von Hand gekillt habe.Der Restore hat mit einigem Meckern im Log funktioniert, aber das waren aus meiner Sicht vernachlässigbare Fehler. Beim Versuch die Instanzen zu starten, hat er erwartungsgemäß gemeckert, dass die Instanz nicht da wäre und er den Adapter jetzt installiert. Dabei haben einige Adapter gemeckert, dass das Nachinstallieren einiger Libs fehlgeschlagen wäre.
Die Instanzen wurden dann aber danach doch nicht gestartet. Bis auf admin.0 waren alle Instanzen stopped. Ich habe diese dann von Hand nacheinander gestartet und immer ein bisschen gewartet. Dann habe ich den ioBroker mal 30 Minuten in Ruhe gelassen und dann denn Container restartet um zu schauen, ob auch alles wieder sauber hoch kommt.Bis dato sieht alles gut aus. Auch meine größte Angst, dass ioBroker mal wieder meine History Datenpunkte gekilled hat, hat sich nicht bestätigt. Nach dem Start des InfluxDB Adapters waren alle Datenpunkte wieder so im Logging, wie es sein sollte.
Würde sagen: Operation geglückt.
Aber wieso funktioniert der Restore beim FirstStart nicht? Gibt es da irgendwelche Hinweise? Bin auch durchaus bereit hier noch zu unterstützen und Sachen zu debuggen.
-
@Glasfaser sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
dort dein Backup rein , dann
pkill -u iobroker iobroker restore iobroker_2020_10_26-13_13_56_backupiobroker.tar.gz iobroker start
eventuell wenn es danach nicht geht
pkill -u iobroker iobroker host this iobroker startBitte, bitte kein "iobroker start" im Container! Den Container immer komplett neu starten, damit das Startscript durch läuft und den ioBroker selbst startet!
https://smarthome.buanet.de/2019/05/iobroker-docker-image-steuerung-per-kommandozeile/MfG,
André -
@Satsh Soweit alles richtig gemacht.
@Satsh sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Aber wieso funktioniert der Restore beim FirstStart nicht? Gibt es da irgendwelche Hinweise? Bin auch durchaus bereit hier noch zu unterstützen und Sachen zu debuggen.
Der Restore funktioniert aufgrund eines Zugriffsproblems nicht. Kurzum, irgendwas mit den Berechtigungen stimmt da nicht.
@Satsh sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Cannot save /opt/iobroker/iobroker-data/states.json: Error: EACCES: permission denied, open '/opt/iobroker/iobroker-data/states.json.bak'
Das ist der Übeltäter. Habe in letzter Zeit vermehrt Anfragen dazu. Habe noch nicht rausgefunden was da los ist und ob sich da irgendwo etwas verändert hat, auf das ich im image vielleicht reagieren muss...
folgendes würde mich in deinem Fall interessieren:- Nutzt du eine DiskStation als Docker Host?
- Wie und wo legst du das Verzeichnis an, dass du für /opt/iobroker verwendest?
- Mit welchem User auf der DS arbeitest du (also aus Sicht der Berechtigungen)?
- Wie kopierst du das Backupfile?
- Irgendwelse Besonderheiten/ Hindernisse vor dem ersten Start des Containers?
MfG,
André -
- Ja, ioBroker läuft direkt auf meiner DS
- Ich habe innerhalb der DS einen gemeinsamen Ordner /Docker, unter dem ich die einzelnen Mountpoints anlege, damit sie ins Backup laufen. Für ioBroker mache ich einen lokalen Bind auf /volume1/Docker/iobroker (Beispiel), ich nutze für ioBroker kein Volume im Docker.
- Ohne User, da lokaler Bind.
- Ich habe zwei Wege probiert, da ich von dem "Kopierfehler über Windows" gelesen habe: 1. Copy&Paste innerhalb der DS (CMD+C,CMD+V) 2. Download von der DS, Upload auf die DS
- Ich clone den alten ioBroker Container und führe danach folgende Änderungen durch:
- Bind auf neues, leeres Verzeichnes (damit ich im Notfall das alte Verzeichnis noch mit dem alten Container als Fallback wieder hochfahren kann)
- Pull des neues Image (hier 5.0.0)
- Kopieren des letzten Backups in das root des neuen Verzeichnisses
Irritierend ist ja, dass das Verzeichnis komplett leer ist und damit ja keine Verzeichnisse mit falschen Berechtigungen existieren. Alles was erzeugt wird, wird von ioBroker erzeugt. Und entpacken kann er das Backup ja scheinbar und legt damit auch Verzeichnisse an. Und danach hat er ein Problem ein selbst angelegtes File zu lesen? Das klingt schon sehr seltsam...
Ich weiß nur leider nicht wo ich zum Debuggen dazwischenfunken kann. Wo ist denn das Script, was das Backup dabei behandelt? Dann schaue ich mal drüber...
-
Ich glaube ich habe die Ursache gefunden:
root@iobroker:~# tar tvf /opt/initial_iobroker.tar | grep root.root drwxr-xr-x root/root 0 2020-10-19 14:15 opt/iobroker/node_modules/iobroker.js-controller/tmp/ -rw-r--r-- root/root 28844 2020-10-19 14:15 opt/iobroker/iobroker-data/backup-objects/2020-10-19_12-15_objects.json.gz -rw-r--r-- root/root 22 2020-10-19 14:15 opt/iobroker/iobroker-data/backup-objects/2020-10-19_12-15_states.json.gz -rw-r--r-- root/root 2 2020-10-19 14:15 opt/iobroker/iobroker-data/states.json.bak -rw-rw-r-- root/root 13 2020-10-19 14:15 opt/iobroker/.install_host
Es gibt im initial_iobroker.tar einige Dateien, die root.root gehören - insbesondere auch die states.json.bak - die der iobroker beim restore 0 wahrescheinlich überschreiben möchte - aber wahrscheinlich nicht kann, weil (Vermutung!) iobroker selber einen priviledge drop macht?
S
-
@Satsh Hab mir das gerade mal genauer angeschaut. In der Tat gibt es da Probleme mit den Berechtigungen.
Habe das jetzt im Startupscript beim Restore abgefangen. Beim ersten Test hat das wunderbar funktioniert. Warum es aber jetzt plötzlich zu solch einem Fehler kommt ist mir ein Rätsel. Mein Letzter Restore am Livesystem hat tadellos funktioniert...Achso, aktuell ist der Fix noch nicht in der Beta enthalten. Muss noch zwei andere Sachen prüfen (und Dokumentieren) und mache dann eine neue Beta-Version.
MfG,
André -
@andre
Blöde Frage: aber was muss man da groß fixen - außer die Files im initial_iobroker.tar mit den korrekten user/group Rechten zu versehen? Oder übersehe ich etwas und die Ursache war noch eine Andere?Ich denke es kommt auch darauf an, wie man den Mount einbindet. Bei einem nfs mit all-squash oder einem CIFS mit fixed user credentials würde das Problem nicht auftreten denke ich, da hier der User vom Transportprotokol festgetackert wird - egal welche Berechtigungen das File eigentlich hatte.
-
@Satsh sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
aber was muss man da groß fixen
Nichts, hat ja keiner gesagt dass es was großes ist...
@Satsh sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Files im initial_iobroker.tar mit den korrekten user/group Rechten zu versehen
Seitdem ioBroker unter dem user iobroker läuft, gibt es immer wieder mal Probleme mit Berechtigungen. Aus diesem Grund setze ich im Startupscript bei jedem Start den Eigentümer des gesamten Ordner "/opt/iobroker" im Conntainer auf den user iobroker. Im Falle des Restores müsste das aber zwischen umkopieren restore passieren.
Genau da habe ich es jetzt mit eingefügt, sodass beim restore unter dem user iobroker sichergestellt ist, dass dieser alle relevanten Dateien bearbeiten darf.@Satsh sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Ich denke es kommt auch darauf an, wie man den Mount einbindet. Bei einem nfs mit all-squash oder einem CIFS mit fixed user credentials würde das Problem nicht auftreten denke ich, da hier der User vom Transportprotokol festgetackert wird - egal welche Berechtigungen das File eigentlich hatte.
Jein. nfs und cifs haben damit wenig zu tun. Der mount im Container ist ja kein echter mount. Vielmehr wird dem Container lediglich der Zugriff auf einen bestimmten Ordner im Filesystem des Hosts gewährt. Das merkt man auch, wenn man sich die Berechtigungen des Ordners auf dem Host mal anschaut...
An der Stelle breche ich jetzt aber ab... Das Thema kann ich hier nicht in ein paar Worten erklären...
Nur soviel: Wenn dich das Thema interessiert, probiere mal die Umgebungsvariablen zu uid und gid... und schau dir dann die Berechtigungen der Dateien im ioBroker Ordner auf dem Host an....MfG,
André -
@andre said in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Seitdem ioBroker unter dem user iobroker läuft, gibt es immer wieder mal Probleme mit Berechtigungen. Aus diesem Grund setze ich im Startupscript bei jedem Start den Eigentümer des gesamten Ordner "/opt/iobroker" im Conntainer auf den user iobroker. Im Falle des Restores müsste das aber zwischen umkopieren restore passieren.
Genau da habe ich es jetzt mit eingefügt, sodass beim restore unter dem user iobroker sichergestellt ist, dass dieser alle relevanten Dateien bearbeiten darf.Mal ne andere Frage... schonmal über chmod g+s /opt/iobroker nachgedacht? In meinem Falle hätte das das Problem ziemlich sicher erschlagen, aber ich weiß nicht wie Docker das genau mit Volumes handhabt, die über NFS/CIFS bereitgestellt werden.
@Satsh sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Ich denke es kommt auch darauf an, wie man den Mount einbindet. Bei einem nfs mit all-squash oder einem CIFS mit fixed user credentials würde das Problem nicht auftreten denke ich, da hier der User vom Transportprotokol festgetackert wird - egal welche Berechtigungen das File eigentlich hatte.
Jein. nfs und cifs haben damit wenig zu tun. Der mount im Container ist ja kein echter mount. Vielmehr wird dem Container lediglich der Zugriff auf einen bestimmten Ordner im Filesystem des Hosts gewährt. Das merkt man auch, wenn man sich die Berechtigungen des Ordners auf dem Host mal anschaut...
An der Stelle breche ich jetzt aber ab... Das Thema kann ich hier nicht in ein paar Worten erklären...
Nur soviel: Wenn dich das Thema interessiert, probiere mal die Umgebungsvariablen zu uid und gid... und schau dir dann die Berechtigungen der Dateien im ioBroker Ordner auf dem Host an....Hm ok, mit den Interna von Docker im Bezug auf Volumes habe ich mich noch nicht beschäftigt. Das fällt sonst unter die Kategorie "funktioniert halt"
Danke trotzdem für deine Erklärungen und den Fix.
Gruß
Sascha -
@andre said in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Was die ENV IOB_MULTIHOST angeht, da habe ich aktuell noch keine Doku zu gemacht. Hier geht es im Grunde darum, dass man einen ioBroker Container als Slave konfigurieren kann der sich dann automatisch zu einem Master verbindet. Damit das funktioniert muss die ENV natürlich beim master auf "master" und beim slave auf "slave" konfiguriert werden. Zusätzlich müssen die ENVs für objectsdb und statesdb entsprechend konfiguriert werden... Wer sich mit Multihost auskennt ist natürlich gerne eingeladen auch dies zu testen.
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.
Vielleicht könnte jemand kurz aufzeigen, wie die Container/Instanzen konfiguriert werden müssen?
Nach meinem ersten Verständnis muss die Environment Variable
IOB_MULTIHOST
aufmaster
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 Wertslave
.Aber ich muss doch sicherlich den Multihost Modus aktivieren, Stichwort
iobroker multihost enable
(auf dem Master) undiobroker multihost connect
auf dem Slave System, richtig? Wie löse ich das in der Docker-Umgebung? -
Sorry, aber leider ist dieser Threat sehr lang geworden und die Suche hat mich jetzt nicht weitergebracht. Aber natürlich habe ich eine Frage bezüglich der Installation von ioBroker unter Docker
Vielleicht kann mir einer weiterhelfen.
Ich möchte mal wieder gerne eine Neuinstallation durchführen, weil bei früheren Installationen möglicherweise wegen mehrerer parallel laufender ioBroker einige Installationspunkte nicht so abgelaufen sein könnten, wie eigentlich gewünscht.
Dabei wollte ich auch mal ausprobieren, ob Docker wirklich Erleichterung gerade bei Neu- und Testinstallationen bringt.
Ich werde versuchen mich bei der Installation auch an die Vorgabe von buanet halten. Nur werde ich versuchen, das System auf einem x86 unter Ubuntu-Server zu installieren und nicht unter einer nackten debian-Version. Aber auch hier lasse ich mich gerne belehren. GUI brauche ich nicht. Konfiguriere es eh über Putty.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.
Ihr merkt, Docker ist für mich noch etwas Fremdes. Also seid bitte gnädig mit Euren Antworten
-
@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?