NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@andre Dazu hätte ich direkt auch mal eine Frage, die aber die Docker-Container im Allgemeinen betrifft.
Wenn ich einen Docker-Container im bridge-Modus betreibe (also nicht über Portainer), dann ist es ja mitunter erforderlich, Ports freizugeben. Möchte ich für den Container nun ein neues Image erstellen, dann stoppe ich in der Regel das alte Image. Das Problem beim Neuanlegen ist nun aber, dass trotz des Stopps die Ports weiterhin blockiert sind. Ich muss also erst den alten Container löschen, bevor ich den neuen mit identischen Ports betreiben kann. Gibt es dafür einen Workaround?
Ich nutze absichtlich nicht den Portainer, weil es mir damit irgendwie nicht gelungen ist, meine nativ auf der DS laufende SQL-Datenbank (mariaDB) in den ioBroker einzubinden. Mir war das dann irgendwie zu müßig, so dass ich mich gegen den Portainer entschieden hatte. Zudem gab es auch hier und da Probleme, wenn ich ein bestehende Konfiguration ändern wollte.
Das Problem mit den Ports habe ich jetzt übrigens nicht beim ioBroker-Container, weil der bei mir im host-Modus läuft. Aber ich dachte mir, ich frag trotzdem mal.
-
@marc-berg sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Du kannst den js-Controller manuell updaten
Hierzu vielleicht noch ein kleiner Hinweis für diejenigen, den den Docker-Container direkt über die DS ausführen. Um die Terminal-Kommandos zum Killen des ioBrokers auszuführen, muss man eine neue bash öffnen. Dazu einfach auf "Erstellen" und dann auf die automtisch hinzugefügte "bash" klicken. Fertig.
Nach jedem Schließen des Fenstern verschwindet die bash wieder automatisch und muss dann ggf. erneut angelegt werden.
-
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Wenn ich einen Docker-Container im bridge-Modus betreibe (also nicht über Portainer)
Das hat nichts miteinander zu tun! Portainer ist nur eine grafische Oberfläche für den Docker Dienst.
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
dann ist es ja mitunter erforderlich, Ports freizugeben
Wenn du eine Container über ein Bridge Netzwerk betreibst, musst du die Ports, die von Außen erreichbar sein sollen freigeben.
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Möchte ich für den Container nun ein neues Image erstellen, dann stoppe ich in der Regel das alte Image.
Du erstellst vermutlich Container und nicht Images. Images sind die Grundlage der Container. Aus einem Image kannst du beliebig viele Container starten.
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
dass trotz des Stopps die Ports weiterhin blockiert sind.
Das mag sein. Habe ich noch nicht ausprobiert.
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Gibt es dafür einen Workaround?
Wenn es wirklich so ist, denke ich nicht.
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Ich nutze absichtlich nicht den Portainer, weil es mir damit irgendwie nicht gelungen ist, meine nativ auf der DS laufende SQL-Datenbank (mariaDB) in den ioBroker einzubinden.
Kann ich nicht nachvollziehen. Wenn du einen Container in einem Bridge Netzwerk laufen hast, dann ist der Host in der Regel das Gateway in diesem Netzwerk. Du solltest dich also über die Gateway-Adresse auf ein SQL DB die auf dem Host läuft verbinden können.
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Zudem gab es auch hier und da Probleme, wenn ich ein bestehende Konfiguration ändern wollte.
Ja, die Web UI hat so ihre Tücken. Grundsätzlich gilt: Bestehende Container lassen sich nicht ändern, nur neu Anlegen (deswegen heißt der Button im Portainer auch "duplicate/ edit").
Schau dir mal Portainer Stacks aka docker-compose an. Das funktioniert besser als die WebUI.MfG,
André -
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
@andre Dazu hätte ich direkt auch mal eine Frage, die aber die Docker-Container im Allgemeinen betrifft.
Wenn ich einen Docker-Container im bridge-Modus betreibe (also nicht über Portainer), dann ist es ja mitunter erforderlich, Ports freizugeben. Möchte ich für den Container nun ein neues Image erstellen, dann stoppe ich in der Regel das alte Image. Das Problem beim Neuanlegen ist nun aber, dass trotz des Stopps die Ports weiterhin blockiert sind. Ich muss also erst den alten Container löschen, bevor ich den neuen mit identischen Ports betreiben kann. Gibt es dafür einen Workaround?
Zeig mal bitte die Meldung, die besagt, dass die Ports belegt sein sollen. Das kann dann nur eine Synology Spezialität sein. In einer nativen Docker-Umgebung kann ich mehrere Container mit gleichen Portfreigaben anlegen, kann natürlich nur einen starten.
-
@marc-berg sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Das kann dann nur eine Synology Spezialität sein
Ist so ...
-
@codierknecht
Eine Google-Suche ergibt, dass du auf der Synology wohl nicht allein mit dem Problem bist.Was spricht dagegen, den Container vorher zu löschen?
-
@marc-berg sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Eine Google-Suche ergibt, dass du auf der Synology wohl nicht allein mit dem Problem bist.
Mir ist das völlig Wumpe. Aber @dtp dürfte das sicher interessieren
-
Guten Tag zusammen,
ich wollte vor kurzem ein Multihost System einrichten, eine Instanz (Slave) auf einem Unraid Server. Einrichtung hat auch funktioniert, allerdings startet der Docker Container jetzt nicht mehr:
(Re)setting permissions (This might take a while! Please be patient!)... Done. Fixing "sudo-bug" by replacing sudo with gosu... Done. Hostname in ioBroker does not match the hostname of this container. Updating hostname to iobroker UR... ** Press ANY KEY to close this window **
Gibt es da noch einen Bug (wie zuvor beschrieben auf Beta wechseln) oder woran kann das liegen?
-
@codierknecht sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
@marc-berg sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Eine Google-Suche ergibt, dass du auf der Synology wohl nicht allein mit dem Problem bist.
Mir ist das völlig Wumpe. Aber @dtp dürfte das sicher interessieren
Achja, falscher Adressat ..
-
@fir3drag0n sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Hostname in ioBroker does not match the hostname of this container.
steht doch da ... das ist kein Bug !
-
@glasfaser und wie schaffe ich es dann den Container zu starten?
-
@fir3drag0n sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
ich wollte vor kurzem ein Multihost System einrichten, eine Instanz (Slave) auf einem Unraid Server. Einrichtung hat auch funktioniert,
Habe kein Unraid Server.
Keine Ahnung ... warum es so dann bei dir so kommt .
-
@glasfaser der Container wird ja direkt beendet - wie soll ich da die Befehle absetzen?
-
@fir3drag0n sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Hostname in ioBroker does not match the hostname of this container.
Updating hostname to iobroker UR..iobroker UR..
Hast du hier was gekürzt !?
Nochmal ... ich weiß nicht was du gemacht hast ... normalerweise kommt soetwas , wenn du ein Backup einspielst .
Hast du den Hostname geändert !?
-
@glasfaser hat sich erledigt, im Docker Image müssen unbedingt noch die ENV Variables für Multihost (master od slave) und objectsdb sowie statesdb gesetzt werden
-
@fir3drag0n sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
@glasfaser hat sich erledigt,
Freut mich ... das du deinen Bug gefunden hast
-
@marc-berg sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Was spricht dagegen, den Container vorher zu löschen?
Danke für eure Hinweise. 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.
-
gelöscht
-
@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