NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Gegen das vorherige Löschen des Containers spricht natürlich nicht viel, außer, dass man sich dann ggf. vorher die Einstellungen hinsichtlich der Ports, Volumes und Umgebungsvariablen notieren muss. Und wenn was nicht funktioniert, besteht ggf. ein Risiko, dass man nicht mehr zur alten Version zurück kommt.
Nein. Schau dir Portainer Stacks aka docker-compose an! Dann brauchst du dir keine Einstellungen merken.
Zur alten Version zurück? Schau dir die Tags des Docker Images an. Es gibt immer die Möglichkeit eine ältere Version zu laden.
Und das Wichtigste: Mach ein Backup vom ioBroker Ordner!MfG,
André -
Ich have aktuell auch Probleme, ioBroker als Container neu aufzusetzen.
Ich nutze Docker innerhalb einer Proxmox Virtualisierung. Diese funktioniert wunderbar mit diversen Containern. Zur Verwaltung nutze ich Portainer.
Beim Einrichten eines neuen "leeren" ioBroker mit gemappten Verzeicnis /opt/iobroker und gesetzem "DEBUG"-Flag bekomme ich als log:-------------------------------------------------------------------------------- ------------------------- 2023-01-22 17:12:08 ------------------------- -------------------------------------------------------------------------------- ----- ----- ----- ██╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗ ███████╗ ██████╗ ----- ----- ██║ ██╔═══██╗ ██╔══██╗ ██╔══██╗ ██╔═══██╗ ██║ ██╔╝ ██╔════╝ ██╔══██╗ ----- ----- ██║ ██║ ██║ ██████╔╝ ██████╔╝ ██║ ██║ █████╔╝ █████╗ ██████╔╝ ----- ----- ██║ ██║ ██║ ██╔══██╗ ██╔══██╗ ██║ ██║ ██╔═██╗ ██╔══╝ ██╔══██╗ ----- ----- ██║ ╚██████╔╝ ██████╔╝ ██║ ██║ ╚██████╔╝ ██║ ██╗ ███████╗ ██║ ██║ ----- ----- ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ ----- ----- ----- ----- Welcome to your ioBroker Docker container! ----- ----- Startupscript is now running! ----- ----- Please be patient! ----- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----- System Information ----- ----- arch: x86_64 ----- ----- hostname: 92b196522335 ----- ----- ----- ----- Version Information ----- ----- image: v7.2.0 ----- ----- build: 2023-01-12T23:45:25+00:00 ----- ----- node: v16.19.0 ----- ----- npm: 8.19.3 ----- ----- ----- ----- Environment Variables ----- ----- DEBUG: true ----- ----- SETGID: 1000 ----- ----- SETUID: 1000 ----- -------------------------------------------------------------------------------- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! DEBUG LOG ACTIVE !!!! !!!! Environment variable DEBUG is set to true. !!!! !!!! This will extend the logging output and may slow down container start. !!!! !!!! Please make sure to deactivate if no longer needed. !!!! !!!! For more information see ioBroker Docker image documentation: !!!! !!!! https://docs.buanet.de/iobroker-docker-image/docs/ !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------- ----- Step 1 of 5: Preparing container ----- -------------------------------------------------------------------------------- Updating Linux packages on first run... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 29424 files and directories currently installed.) Preparing to unpack .../sudo_1.9.5p2-3+deb11u1_amd64.deb ... Unpacking sudo (1.9.5p2-3+deb11u1) over (1.9.5p2-3) ... Setting up sudo (1.9.5p2-3+deb11u1) ... invoke-rc.d: could not determine current runlevel invoke-rc.d: policy-rc.d denied execution of restart. Done. Registering maintenance script as command... Done. -------------------------------------------------------------------------------- ----- Step 2 of 5: Detecting ioBroker installation ----- -------------------------------------------------------------------------------- There is no data detected in /opt/iobroker. Restoring initial ioBroker installation... Done. -------------------------------------------------------------------------------- ----- Step 3 of 5: Checking ioBroker installation ----- -------------------------------------------------------------------------------- (Re)setting permissions (This might take a while! Please be patient!)... Done. Fixing "sudo-bug" by replacing sudo with gosu... Done. error: failed switching to "iobroker": operation not permitted There was a problem detecting the admin instance of your iobroker. Make sure the ioBroker installation you use has an admin instance or start over with a fresh installation and restore your configuration. For more details see https://docs.buanet.de/iobroker-docker-image/docs/#restore [DEBUG] Debug mode prevents the container from exiting on errors. [DEBUG] This enables you to investigate or fix your issue on the command line. [DEBUG] If you want to stop or restart your container you have to do it manually. [DEBUG] IoBroker is not running!
Mir scheint hier ein Rechteproblem vorzuliegen.
Der Container läuft als "root". Im Container scheint aber der User "iobroker" verwendet zu werden.Was muss ich nun tun?
Uwe
-
@uweklatt sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Beim Einrichten eines neuen "leeren" ioBroker mit gemappten Verzeicnis /opt/iobroker
was ist ohne einem gemappten Ordner , läuft er dann durch !?
-
@glasfaser
Nein, dann erscheint derselbe Fehler. -
@uweklatt sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Zur Verwaltung nutze ich Portainer.
Welche Version ... es gibt ein Problem damit ...
siehe hier :
https://forum.iobroker.net/post/919177 -
@glasfaser
Portainer ist Business 2.16.2 -
Ich habe nun einmal den älteren Container 7.1.2 getestet.
Dieser funktioniert!
Das sollte sich @andre einmal ansehen...Tschau
Uwe -
@uweklatt sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
@glasfaser
Nein, dann erscheint derselbe Fehler.Wenn du kein Verzeichnis mountest bekommst du den "operation not permitted"-Fehler???
Das halte ich für höchst unwahrscheinlich! Was kommt wenn du in dem gezeigten Status im Container einiobroker list instances
machst?@uweklatt sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Mir scheint hier ein Rechteproblem vorzuliegen.
Das sehe ich genauso. Allerdings fällt es mir schwer zu glauben dass Portainer daran schuld sein könnte. Leider erzählst du wenig über dein Setup. Da Proxmox von haus aus kein Docker kann, wie hast du deinen Docker Dienst laufen? In einer VM? In einem LXC? Oder gar direkt im Proxmox Host installiert?
Außerdem interessant: Wo liegen deine Daten? Hast du vielleicht eine Festplatte gemountet? Oder gar eine Netzwerkfreigabe?@uweklatt sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Das sollte sich @andre einmal ansehen...
Was genau sollte ich mir denn einmal ansehen? Dass die ältere Version des Images funktioniert, könntn lie daraegen, dass das Startup-Script erst seit v7.2 bei Fehlern strikt abbricht. Also wenn zum Beispiel permissions nicht passen oder die Konfiguration des Containers fehlerhaft ist.
MfG,
André -
@andre
Ich wollte Deinen "latest" Docker-Container in einem LXC Container, der wiederum Docker enthält, installieren.
Zur Verwaltung verwende ich in dieser Docker Instanz Portainer.
Docker Version 20.10.23 CE
Portainer Version 2.16.2 BE
Um Seiteneffekte zu reduzieren, habe ich auch eine Installation ohne eingebundene Verzeichnisse und ohne Backup, also eine saubere Neuinstallation versucht. - Bei allen getesteten Varianten habe ich die oben genannte Fehlermeldung erhalten. Die buanet Container stammen direkt vom Docker-Hub. Selbst das manuelle Aufrufen von "iobroker" in der Countainer-Konsole hat nicht funktioniert.Die ältere Version 7.1.2 liess sich dann problemlos in derselben Umgebung installieren.
Ich habe gerade noch einmal "latest" installiert und jetzt läuft die Installation bis Schritt 5 durch und ioBroker funktioniert???
Als sichtbaren Unterschied wird bei der lauffähigen Version eine zusätzliche lib installiert. Die folgenden Zeilen fehlten in der nicht lauffähigen Version:
Preparing to unpack .../linux-libc-dev_5.10.162-1_amd64.deb ... Unpacking linux-libc-dev:amd64 (5.10.162-1) over (5.10.158-2) ... Setting up linux-libc-dev:amd64 (5.10.162-1) ...
Evtl. war die Lib beim fehlgeschlagenen Versuch nicht ladbar?
Ist das Update für den Betrieb erforderlich?Uwe
-
@uweklatt Kann ich nicht nachvollziehen. Bis vor wenigen Tagen hatte ich es genauso laufen. Also Proxmox > LXC > Docker > ioBroker, Portainer uvm....
@uweklatt sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Selbst das manuelle Aufrufen von "iobroker" in der Countainer-Konsole hat nicht funktioniert.
Fehlermeldung?
@uweklatt sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Evtl. war die Lib beim fehlgeschlagenen Versuch nicht ladbar?
Ist das Update für den Betrieb erforderlich?Kann sein, aber ich glaube nicht, dass das hier das Problem war. Dein Log-Ausschnitt scheint vom Paketupdate beim Container Start zu stammen. Kann auch einfach sein, dass es das Update am Wochenende einfach noch nicht gab... das zieht er ja frisch aus dem Internet.
MfG,
André -
in seinem Log ist
invoke-rc.d: could not determine current runlevel invoke-rc.d: policy-rc.d denied execution of restart.
und er schreibt ,
@uweklatt sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
den älteren Container 7.1.2 getestet.
Dieser funktioniert!sieht mir ähnlich aus .... ein Node Problem bei ihm !?
Beim Issues :
invoke-rc.d: could not determine current runlevel invoke-rc.d: policy-rc.d denied execution of restart.
siehe hier :
-
@glasfaser
node ist doch Teil des Containers.
@andre
Leider habe ich den zuvor nicht funktionierenden Container inzwischen gelöscht, kann das nun nicht mehr reproduzieren.
Aber trotzdem Danke für das Feedback.
Uwe -
@uweklatt sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
kann das nun nicht mehr reproduzieren.
Also funktioniert jetzt alles , mit dem Image 7.2.0 , ohne Fehler !?
-
@glasfaser
Ja, soweit ich es beurteilen kann.
Die Grundinstallation hat inzwischen einwandfrei funktioniert.
Produktiv läuft bei mir aber noch Version 7.1.2. -
Hallo zusammen,
ich habe bisher immer eine ioBroker Docker MacVLAN Installation gehabt bzw habe noch. Ich würde aber gerne in die Host Installation wechseln. Einen neuen Docker habe ich bereits aufgesetzt, allerdings habe ich dort Probleme mit meinen Netzwerken.
Ich nutze eine DS1821+, insgesamt hat diese 5 LAN Ports, 3 davon nutze ich, 1 x Hauptnetzwerk plus 2 VLANs. Mein Problem mit einem Docker im Host Modus ist, dass dieser scheinbar nur das Hauptnetzwerk nutzen kann. Meine Shellys, welche via MQTT angesprochen werden und in einem der beiden VLANs sind, kann ich nicht ansprechen (COAP geht problemlos). Besteht irgendeine Möglichkeit, dass ein Docker im Host Netzwerk auf alle Verfügbaren Netze zugreifen kann?Host Modus wäre einfacher und bisher sind Ports kein Problem.
-
@toralt sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Besteht irgendeine Möglichkeit, dass ein Docker im Host Netzwerk auf alle Verfügbaren Netze zugreifen kann?
Im Portainer im Docker Abschnitt Connected networks , gibt es den Punkt : Join a Network
Beispiel :
https://forum.iobroker.net/post/932137 -
@glasfaser Wenn ein Container im "Host"-Netzwerk ist, dann kann man keine Netzwerke hinzufügen.
Das geht nur bei einem Bridge Netzwerk oder eben MacVLAN.Meine Vermutung ist, dass ein das Docker Host-Netzwerk nur ein Netzwerk der Synology ansprechen kann, bzw eine Netzwerkschnittstelle.
Vermutlich müsste ich virtuelle VLANs für mein Hauptnetzwerk erstellen, damit die eine Netzwerkkarte Zugriff auf alle drei Netze hat. Aber nachdem ich die letzten 2 Stunden damit verbracht habe, genau das zu versuchen und mir meine Netzkonfig zerschossen habe, wollte ich da jetzt dann doch die Finger davon lassen
-
@toralt
Aber kannst Du denn Dein IOT LAN nicht über ein Gateway erreichen? Sprich hast Du kein InterVLAN routing? Für MQTT müssen die Geräte nicht in der gleichen Broadcast Domain sein. D.h. wenn Deine Shelly's in Netz 10.1.2.0/24 sind, der MQTT Broker im Netz 10.1.1.0/24 ist und es zwischen 10.1.1.0/24 und 10.1.2.0/24 ein Routing exsistiert, dann funktioniert es. Prüfe doch erstmal IP and GW der Shelly's.Was spricht eigentlich für Dich dagegen auch den ioBroker im MACVLAN zu betreiben? Der MACVLAN Treiber ist zuverlässig und schnell.
Wenn Du aus einem Container auch noch Zugriff auf die IP der Synology benötigst, kann Du das mit einer 2. IP aus dem MACVLAN auf der Synology erreichen. Aber dann sollte man bedenken, dass es ja aus Sicherheitsgründen gesperrt ist und evtl. ein paar Schutzmaßnahmen (Firewall/ACL's) für diese IP einrichten.
-
@rookie50
Bei mir gibt es drei Netzwerke:
192.168.4.0/24
192.168.178.0/24 - VLAN ID=10 IoT
10.1.1.0/24 - VLAN ID=20 -dieses Netzwerk ist nur für Docker ContainerMacVLAN für den ioBroker Docker gibt es:
192.168.4.6/32
192.168.178.100/32
10.1.1.20/28 wobei der ioBroker sich eine freie IP nimmt.im 10.1.1.0 netzt sind noch ein Mosquitto Docker und ein Zigbee2MQTT Docker
Und jetzt kommen wir zu den Dockern die Probleme machen:
Ich habe noch 6 Docker wo jeweils ein owntone Server läuft (für jeden Homepod/Gruppe von HomePods einer) Diese laufen im Host Modus. Auf diesen kann ich nicht zugreifen von MacVLAN, das ist mir bekannt. Daher gehe ich über den Umweg einer VM, auf welcher ein Linux mit einer HomeBridge läuft. Dort das owntone-Plugin. via Homekit-controller kann ich diese wunderbar steuern.Da ich aber weg will vom homekit Controller war mein Gedanke, das ich die Owntone Host Docker einfach in mein Docker LAN hänge (10.1.1.0/24). Die Server funktionieren auch wunderbar (oberfläche ausfrufbar mit IP, Homepods auswählbar, Radiosender wählbar), jeder mit eigener IP ABER ich kann sie vom ioBroker nicht steuern, obwohl der ioBroker ebenfalls in diesem Netzwerk ist (Zigbee2mqtt funktioniert ohne Probleme).
Weder das owntone Plugin via HAM Adapter noch direkte curl Befehle gehen durch.Die Synology, auf der der Docker läuft, besitzt insgesamt 5 Netzwerkschnittstellen, wovon 3 belegt sind (jeweils eines der 3 Netzwerke) Der Switch ist entsprechend mit 3 Kabeln mit dem NAS verbunden, wobei zwei der drei Ports untagged sind.
Meinem Verständnis nach müsste ich doch mit dem ioBroker eigentlich problemlos auf meine owntone Docker zugreifen können, wenn diese auch via MacVLAN verbunden sind? Oder habe ich einen Denkfehler. Wie gesagt, der Zigbee2mqtt Adapter ist via 10.1.1.xxx mit dem Zigbee2mqtt Docker verbunden.
Der einfachste Gedanke meinerseits war nun, einfach alles auf Host Netzwerk und gut ist, wobei mir MacVLAN schon sehr gut gefällt. Aber ich bekomme dieses eine Problem nicht gelöst.
-
@toralt said in [HowTo] ioBroker unter Docker auf Synology DiskStation:
das ich die Owntone Host Docker einfach in mein Docker LAN hänge
Sorry, da muss ich nun nachfragen, da es sich nicht eindeutig liest: Hast Du einen Owntone Host Rechner auf dem noch zusätzlich Docker läuft, oder ist es ein Owntone Container?
Ein Container mit MACVLAN kann NICHT direkt auf den Docker Host Server zugreifen. Daher muss Du hier schon etwas genauer sein
Irgendwie soZu deinen MACVLAN's: Du kannst pro Netzwerkadapter nur ein MACVLAN definieren. Ich würde mir überlegen, die MACVLAN's etwas größer zu machen als /32. Dann kann Du mehrere Container im MACVLAN betreiben.