NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@Satsh @Glasfaser
Danke für die Info. -
@Satsh sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
@Bongo
Er hat das Update gemacht, weil du es ihm gesagt hast.
Du hast den Tag :latest benutzt und ich wette du hast deinen Container auf "always pull image" stehen. Also zieht er bei jedem Deploy immer automatisch das neuste :latest Image und das ist seit letzte Nacht glaube ich die 5.1.
Wenn du das nicht möchtest, dann solltest du nicht den latest Tag benutzen, sondern zB :5.0.0 - dann kannst du manuell updaten indem du den Tag irgendwann selber auf :5.1.0 anpasst zB.Danke, so wird es wohl ein. In diesem Fall ist das Update kein Problem.
Zum healthy-Status:
Wenn ich es richtig verstehe wird in der neuen Version überprüft ob der Prozess js-controller läuft. Wenn ja ist der Status healthy. Also ab jetzt ist der Normal-Status nicht mehr running sondern healthy.
Habe ich das richtig verstanden? -
Ich habe jetzt den ioBroker wieder in einer Multihost Lösung laufen. Mit den Environment variables IOB_MULTIHOST etc. hat das wunderbar funktioniert.
Ich habe jetzt allerdings noch einen toten Slave in der Liste. Der wird auch nicht mehr wieder kommen. Wie kann ich den denn löschen? Über das normale Papierkorbsymbol funktioniert es nicht. Es kommt halt die Meldung, dass ioBroker gestoppt werden muss, bevor ein Slave entfernt werden kann.
Wie ist denn das Prozedere in der Multihost Docker Variante?
-
@Kraxelhuber sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Über das normale Papierkorbsymbol funktioniert es nicht. Es kommt halt die Meldung, dass ioBroker gestoppt werden muss,
schau mal hier ,da haben wir erst gestern darüber in diesem Thread gesprochen wie es geht.
https://forum.iobroker.net/topic/38427/gelöst-keine-zugriff-mehr-auf-iob-webinterface-multihost
-
@Glasfaser Danke, konnte den toten Slave über den Objektbaum entfernen.
-
@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?