NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@andre Hallo, ich möchte meinen iobroker vom Raspi auf die Synology umziehen, bzw. hier einen Multihost einrichten. Alos die Synology ist dann der Master und der Raspi der Slave.
Ich hab dazu diene Anleitung befolgt. Hab aber Probleme mit dem Multihost, das bekomm ich einfach nicht zum laufen.
Ich habe als Netzwerk auch über die MCVLAN alles eingerichtet. Ich möchte iobroker unter einer eigenständigen IP verwalten.Das Image läuft, aber ich kann jetzt iobroker nicht öffnen.
Wenn ich im Terminal den Status abfrage, sagt er mir auch das iorboker nicht gestartet ist, kann es auch nicht starten.Ich denke dass ich einfach die Einstellungen für den Multihost oder vom Netzwerk falsch gesetzt hab. Weiß aber nicht was.
Hier der LOG vom ContainerActions ------------------------------------------------------------ --------------- 2020-11-09 16:20:24 --------------- ------------------------------------------------------------ ------------------------------------------------------------ ----- Welcome to your ioBroker-container! ----- ----- Startupscript is now running. ----- ----- Please be patient! ----- ------------------------------------------------------------ ------------------------------------------------------------ ----- Debugging information ----- ----- ----- ----- System ----- ----- arch: x86_64 ----- ----- ----- ----- Versions ----- ----- image: v5.1.0 ----- ----- node: v12.19.0 ----- ----- npm: 6.14.8 ----- ----- ----- ----- ENV ----- ----- IOB_MULTIHOST: master ----- ----- IOB_OBJECTSDB_HOST: 192.168.178.5 ----- ----- IOB_OBJECTSDB_PORT: 9001 ----- ----- IOB_OBJECTSDB_TYPE: file ----- ----- SETGID: 1000 ----- ----- SETUID: 1000 ----- ------------------------------------------------------------ ------------------------------------------------------------ ----- Step 1 of 5: Preparing container ----- ------------------------------------------------------------ Registering maintenance script as command. Done. ------------------------------------------------------------ ----- Step 2 of 5: Detecting ioBroker installation ----- ------------------------------------------------------------ Existing installation of ioBroker detected in /opt/iobroker. ------------------------------------------------------------ ----- 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. ------------------------------------------------------------ ----- 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! Multihost is set as "master" by ENV and external objects db is set. Skipping this step... Done. Multihost is set as "master" by ENV and no external states db is set. Setting host of states db to "0.0.0.0" to allow external communication... Done. ENV IOB_OBJECTSDB_TYPE is set and value meets detected ioBroker installation. Nothing to do here. ENV IOB_OBJECTSDB_HOST is set and value is different from detected ioBroker installation. Setting host of objects db to "192.168.178.5"... Done. ENV IOB_OBJECTSDB_PORT is set and value meets detected ioBroker installation. Nothing to do here. ------------------------------------------------------------ ----- Step 5 of 5: ioBroker startup ----- ------------------------------------------------------------ Starting ioBroker...
-
@andre
keiner eine Idee? -
@Michi_Pi Der Kontainer startet nicht vollständig... nach dem starting müsste noch mehr kommen...
Denke mit deinen Netzwerksachen stimmt wa snicht - aber ich hab es anderst gemacht und di MCVLAN im Syno erstellt, kann zu deiner Lösung leider nichts sagen...
-
Ich habe nun das Problem, dass ich am basteln eines Adapters bin und von Visual Studio Code zum debuggen eine SSH Verbindung zum Container aufbauen will.. ich komme nicht weiter... muss ich im Container noch SSH installieren? Der Container läuft nicht privilegiert mit der 5.0.2b...
-
@Boardy okay, werd ich mal versuchen, danke.
-
@Michi_Pi Wenn André das beschrieben hat wird es wohl auch so gehen... ggf noch mal neu versuchen?
-
@andre sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Since v4.0.0 the image is available for the following architectures: amd64, armv7hf, aarch64.
Dafür habe ich kein Image parat...
[...]
Viel Erfolg!Ich habe also einen Rechner mit einem "Intel Core i7-6700" sowie einen mit einem "Intel Core i7-3630QM", auf denen ich ioBroker gerne in einem Docker-Container installiert hätte. Wenn ich es richtig verstanden habe, hast Du für Intel Prozessoren keine fertigen Image eines Docker-Containers von ioBroker. Richtig?
Sollte ich das Ganze auf meinem Laptop mit einem "AMD Ryzen5 3500U" installieren wollen, hättest Du mit dem amd64'er ein passenden Image zur Verfügung. Richtig?
Grundsätzlich geht es mir auch erst einmal um eine Grundinstallation von Docker und dann noch wie von Dir empfohlen auch noch Portainer, um alles zu verwalten.
Testweise hatte ich mich mal an der Anleitung Brian Hogan - Docker unter Ubuntu 20.04 orientiert und Docker installiert. Hello World usw. lief und auch an Portainer habe ich mich versucht nur hatte ich zuviel Durcheinander im System, weshalb ich es jetzt noch mal komplett neu als Mint 20er-System aufgesetzt habe. Hier will ich erst einmal testen und meine Erfahrungen sammeln, um später auf ein Linux ohne GUI zu setzen.
Wenn vielleicht Jemand mal über den Link oben schauen könnte und mir sagen kann, ob ich Docker nach dieser Installation auch ausreichend für eine späteren ioBroker-Container ist, wäre mir wirklich sehr geholfen.
Dann kommen wir zur Portainer-Installation nach Buanet. Unter Vorbereitung Punkt 1 steht
"Weiterhin benötigen wir ein Volume oder einen Ordner den wir zur Speicherung der Konfiguration des Portainer Containers beim Starten in diesen einbinden. Auf der Synology lässt sich ein solcher Ordner leicht über die FileStation anlegen."
Wenn ich keine Snology und Filestation habe, lege ich z.B. unter home, media oder mnt ein Unterverzeichnis z.B. "/media/volume1/docker/portainer_data" an und gebe es dann unter Punkt 2 beim Start des Docker-Containers auch mit "/media/volume1/docker/portainer_data" anstelle Deines Beispiels von "/volume1/docker/portainer_data" an. Richtig?
Und ganz am Schluss dieses Beitrages muss ich dann also einen Docker-Container komplett neu erstellen und dort ioBroker manuell installieren, als wenn ich es in einem Linux ohne Container machen würde??? Hättest Du hierfür vielleicht irgendeinen Link, den Du mir empfehlen kannst. Muss ja nicht ioBroker sein, nur dass ich die Vorgehensweise verstehe.
Ich sagte ja... In Sachen Docker bin ich wirklich völlig unbedarft
-
@Boardy sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
muss ich im Container noch SSH installieren?
SSH ist im Docker Container nicht drin. Wird auch eigentlich nicht gemacht weeil man i. d. R. über docker exec von der Shell des Hosts in den Container geht... oder auch z.B. per Portainer.
Theoretisch machbar ist SSH im Container aber...MfG,
André -
@Berchemer sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Wenn ich es richtig verstanden habe, hast Du für Intel Prozessoren keine fertigen Image eines Docker-Containers von ioBroker. Richtig?
Falsch. Sofern es sich um eine 64bit Architektur handelt passt das amd64 Image. Das hat nichts mit dem Hersteller (Intel oder AMD) zu tun sondern mit der Architektur. Wofür ich kein Image mehr gemacht habe ist i86 (also Intel 32bit). Das ist für mich tot Zur Not ließe sich da aber sicher auch ein Image bauen...
@Berchemer sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Wenn vielleicht Jemand mal über den Link oben schauen könnte und mir sagen kann, ob ich Docker nach dieser Installation auch ausreichend für eine späteren ioBroker-Container ist, wäre mir wirklich sehr geholfen.
Ich habe mir jetzt ehrlich gesagt nicht die ganze Anleitung durchgelesen, aber wenn du am Ende einen laufenden Docker Daemon auf deinem Ubuntu hast sind erstmal grundsätzlich alle Anforderungen für den ioBroker Docker Container erfüllt... Welches Linux du unter dem Docker Daemon verwendest ist fast egal... Wenn du es nich weiter sagst, mein Produktivsystem läuft auf nem Ubuntu 20.04 unter Hyper-V in Windows 10 Pro auf nem Intel NUC PC...
@Berchemer sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Wenn ich keine Snology und Filestation habe, lege ich z.B. unter home, media oder mnt ein Unterverzeichnis z.B. "/media/volume1/docker/portainer_data" an und gebe es dann unter Punkt 2 beim Start des Docker-Containers auch mit "/media/volume1/docker/portainer_data" anstelle Deines Beispiels von "/volume1/docker/portainer_data" an. Richtig?
Ja. Korrekt.
@Berchemer sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Und ganz am Schluss dieses Beitrages muss ich dann also einen Docker-Container komplett neu erstellen und dort ioBroker manuell installieren, als wenn ich es in einem Linux ohne Container machen würde??? Hättest Du hierfür vielleicht irgendeinen Link, den Du mir empfehlen kannst. Muss ja nicht ioBroker sein, nur dass ich die Vorgehensweise verstehe.
??? Nein. Du musst das Image laden und starten (einen Container daraus erstellen). Im Image ist alles drin was der ioBroker braucht inklusiver fertig installiertem ioBroker.
Das erstellen des Containers geht auch über die Kommandozeile oder docker-compose... Für nen Einsteiger empfehle ich aber Portainer... alles schön grafisch...Viel Erfolg!
MfG,
André -
@Michi_Pi sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Hier der LOG vom Container
Nimm mal die ENVs für die Objects DB beim Master raus.
Beim Slave müssen die aber rein, da du dich von dort aus ja auf die Objects DB beim Master verbindest...
hatte ich nicht kürzlich hier eine Beispiel Config für Maste/ Slave gepostet?[EDIT] Guckst du https://forum.iobroker.net/topic/4733/howto-iobroker-unter-docker-auf-synology-diskstation/2206
MfG,
André -
@andre Hi, ich habe mir eine Test IO BRoker auf gesetzt um beim Erstellen meines Adapters mittes Visual Studio Code auf dem Docker zu debuggen... (ein lockaler Docker auf dem PC hilft nicht weil ich eine USB Stick einbinden will der nur im Keller Funktioniert...
Aktuell kann ich aber erst mal ohne Debugger weiter weil der Adapter nun endlich was ins log schreibt... SSH hab ich nicht hinbekommen - falls es nicht zu viel Aufwand ist wäre ein How To schön...
-
@andre das Beispiel von dir hab ich gesehen, ich verwende nicht redis, daher hab ich file eingegeben.
bridge verwende ich auch nicht, hab es auch mit dem macvlan erstellt, muss daher die ports nicht irgendwo öffnen, oder?
muss ich die angegebenen packages auch installieren? libcap-dev und coreutils arp-scan?wenn ich die Einstellungen für Multihost weglasse, ist iobroker gestartet, nachdem ich die gesetzt habe, startet er wieder nicht durch.
hab gerade das aus dem Log
2020-11-17 00:24:50.724 - [32minfo[39m: host.iobroker_master ip addresses: 192.168.178.12 2020-11-17 00:25:20.800 - [31merror[39m: host.iobroker_master No connection to databases possible, restart 2020-11-17 00:25:20.804 - [32minfo[39m: host.iobroker_master iobroker _restart 2020-11-17 00:25:21.270 - [32minfo[39m: host.iobroker_master iobroker Starting node restart.js
-
@Boardy sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
SSH hab ich nicht hinbekommen - falls es nicht zu viel Aufwand ist wäre ein How To schön...
Dazu sollte es schon Anleitungen im Netz geben. Zumindest wie man z.B. openSSH unter Linux installiert.. Da SSH für Docker Container ja eigentlich nicht relevant ist, werde ich da wohl auch keine Zeit investieren. Sorry.
MfG,
André -
@Michi_Pi sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
hab es auch mit dem macvlan erstellt, muss daher die ports nicht irgendwo öffnen, oder?
muss ich die angegebenen packages auch installieren? libcap-dev und coreutils arp-scan?Richtig. Nein. Nein.
Master:
IOB_MULTIHOST=masterSlave:
IOB_MULTIHOST=slave
IOB_OBJECTSDB_HOST=[IP_DES_MASTER]
IOB_OBJECTSDB_PORT=9001
IOB_OBJECTSDB_TYPE=file
IOB_STATESDB_HOST=[IP_DES_MASTER]
IOB_STATESDB_PORT=9000
IOB_STATESDB_TYPE=fileWenn du für due DBs file verwendest, dann beim Master nichts mit geben. Nur sagen dass er ein Master ist.
Beim Slave muss alles rein, damit er sich für States und Objects auf die DB des Master verbindet.MfG,
André -
@andre ok dann wenigstens nen Tip ob apt-get und Openssh gehen müsster? bzw wie sonst? mit apt-get und mit PACKAGES in den ENV kam ich nicht weiter...
Welches ware der richtige weg im Container?
-
@andre sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
IOB_MULTIHOST
ahh.... jetzt hab ich mein problem gefunden, (vielleicht auch ein denkfehler)
Hab beim Master für Obkjet und states auch nochmal die IP des Masters angegeben, das mag er wohl nicht. Hab jetzt 0.0.0.0 dann gings. -
@Boardy sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
ob apt-get und Openssh gehen müsster?
Ja. Im Container läuft ein Debian Buster. Die Befehle sollten funktionieren.
Mit der Umgebungsvariable PACKAGES kannst du Linux Pakete automatisch vom Start Script installieren lassen. Wenn es da Konfiguration braucht, kannst du das über benutzerdefinierte Start Scripts machen. Alles was du manuell in die Kommandozeile haust ist nach einem Recreate verschwunden, daher müssten die Sachen über PACKAGES installiert und benutzerdefinierte Start Scrips konfiguriert werden damit du länger Freude daran hast...
MfG,
André -
@Michi_Pi sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Hab jetzt 0.0.0.0 dann gings.
Das macht er automatisch wenn du IOB_MULTIHOST=master setzt...
MfG,
André -
Hallöchen.
Ist irgendwie bekannt ob es Probleme mit ioBroker als Docker und MACVLAN und MariaDB auf der selben Diskstation gibt?
Ich habe den SQL Adapter installiert aber bekomme einfach keine Verbindung zur Datenbank. Laut Fehler ist der Host nicht erreichbar.
Mit z.B. HeidiSQL vom Windows PC aus macht die Verbindung mit dem selben Nutzer und den selben Angaben zu IP und Port keine Probleme. -
@Zuki Hallo, nicht alles ist immer gleich ein Problem....
Dein Thema ist etwas was es in diesem Thread schon ein paar mal gab, das erste was ich dazu gefunden habe ist das hier:
https://forum.iobroker.net/topic/4733/howto-iobroker-unter-docker-auf-synology-diskstation/761Es geht einfach nicht, dass du aus dem MACVLAN heraus deinen Host erreichst. Das kann m.W. schlich nicht geroutet werden. Lösung: Zusätzliches Bridge Netzwerk. In jedem Bridge Netzwerk das du auf der DS erstellst ist die DS selbst das Gateway... da klappt die Kommunikation dann wieder...
MfG,
André