NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@grace13 sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
@codierknecht warum? der Iobroker läuft ja auch unter Docker?
Wie @hollywoot schon schrieb, geht es hier um den Betrieb auf Synology.
Und da werden wohl hauptsächlich diejenigen reinschauen, die auch Erfahrung mit Synology haben.Du wirst vermutlich mehr und zielführende Antworten bekommen, wenn Du einen neuen Thread mit passendem Titel eröffnest.
-
Ich versuche gerade äußerst erfolglos, das Image auf einem Debian mit Intel i7 CPU zu starten, was aber nicht funktionieren will - habe schon mehrfach versucht, aus einem leeren Verzeichnis zu starten, einige Dateien werden erstellt, aber es bricht immer bei Schritt 3 ab:
-------------------------------------------------------------------------------- ----- Step 1 of 5: Preparing container ----- -------------------------------------------------------------------------------- Updating Linux packages on first run... 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. 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 This Script will exit now.
Kann das mit der anderen Architektur zu tun haben? Mit IOBroker kenne ich mich ja ganz gut aus, Docker läuft mit Portainer auch solide.
Dank! -
@bean sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
habe schon mehrfach versucht, aus einem leeren Verzeichnis zu starten,
und ... ohne Mount .
Zeige auch mal den Anfang vom Log !
habe schon mehrfach versucht,
auch einen neuen Container erstellt , mit einem anderen Containernamen
-
@glasfaser
Was meinst du "ohne Mount"? Ich habe ein Verzeichnis am Host erstellt, und dieses in Portainer mit "bind" mit dem "/opt/iobroker" im Container gelinkt(?). Nachdem dort auch Dateien und Verzeichnisse erstellt werden, klappt das ja grundsätzlich.Aber ich bin jetzt weiter gekommen:
Wenn ich den Docker-Container auf der Kommandozeile starte, klappt es, nur aus Portainer heraus nicht - vermutlich irgendeine Rechte-Problematik? Mal gucken... -
@bean sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Ich habe ein Verzeichnis am Host erstellt, und dieses in Portainer mit "bind" mit dem "/opt/iobroker" im Container gelinkt(?).
Das meinte ich , quasi ohne diesem ...
Nachdem dort auch Dateien und Verzeichnisse erstellt werden, klappt das ja grundsätzlich.
jetzt geht es ... das verstehe ich jetzt nicht , oben schreibts du
aber es bricht immer bei Schritt 3 ab:
-
@glasfaser said in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Das meinte ich , quasi ohne diesem ...
Nachdem dort auch Dateien und Verzeichnisse erstellt werden, klappt das ja grundsätzlich.
jetzt geht es ... das verstehe ich jetzt nicht , oben schreibts du
aber es bricht immer bei Schritt 3 ab:
Ich versuche es eindeutig zu formulieren:
Also es bricht mit dem Fehler "There was a problem detecting the admin instance of your iobroker." ab, diese Log-File sieht man in Portainer - und der Container läuft auch nicht.
Aber im gemounteten Verzeichnis wurden Dateien erstellt, bevor es zum Abbruch kam.ABER: Das bezieht sich nur auf Portainer! Auf der Linux-Kommandozeile startet der IOBroker-Docker-Container auch mit dem gleichen gemounteten Verzeichnis erfolgreich - dürfte also eher ein Portainer-spezifisches Problem sein.
-
@bean
Wie startest du denn im Portainer? Mit compose/Stack? Wenn ja, hau mal rein hier. -
@hollywoot
Bin mit Portainer noch nicht so richtig vertraut. Derzeit starte die Container einfach manuell unter "Container"/"Add Container" und gebe die notwendigen Infos ein (Netzwerk, Volume). -
@bean
OK, das erklärt es wohl.
Portainer funktioniert nicht wirklich 100%ig auf der Synology.
Versuchs mal Mithilfe von docker-compose. Den Inhalt der compose kannst du im Portainer als "Stack" hinzufügen. -
@bean
im Grunde ist Portainer nur ein GUI, um dir visuell einiges zu erleichtern.
Die Fehlermeldung die Du bekommst, ist ja aus dem Startscript des Docker-Containers, unabhängig vom Portainer, der meckert, dass die Admin-Instanz nicht da ist, also quasi das minimum vom ioBroker, die erste Instanz, warum, kann ich dir nicht sagen.
Aber wir versuchen mal zu helfen.Welchen Befehl gibst Du denn in der Konsole ein, damit der ioBroker erstellt wird?
Du kannst den auch so erstellen und trotzdem dann über den Portainer administrieren, so habe ich meine ersten Container auch gemacht.
Schicker ist natürlich wie @hollywoot meint mit compose/stack, dann kannst auch einfach aus Portainer updaten, so muss immer zurück in die Konsole, wenn updaten willst.Also, wenn den jetzt so erstellt hast, solltest ihn auch im Portainer sehen, ich habe meinen ioBroker nämlich auch noch klassisch nach Anleitung von Buanet über die Konsole erstellt, sehe ihn aber im Portainer..
Eventuell hast Du den Mount falsch eingerichtet, werden da Daten geschrieben?
Bei mir sieht's so aus (Synology NAS):
-
@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Portainer funktioniert nicht wirklich 100%ig auf der Synology.
Höre ich zum erstem mal !?
Er hat keine Synology ..
@bean sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
das Image auf einem Debian mit Intel i7 CPU zu starten,
-
@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Den Inhalt der compose kannst du im Portainer als "Stack" hinzufügen.
Kannst Du bitte mal Dein Stack hier posten?
Wie ich oben schrieb, hab ich mein ioBroker auch noch klassisch von der Konsole erstellt, aber für die Zukunft würde ich auch das umstellen in Stack, ist ja dann doch einfacher -
@glasfaser
Zum ersten Mal? Ich konnte noch nie über Portainer zB meine ENV ändern/ergänzen. Funktioniert einfach nicht. Drückst auf Speichern und er ignoriert dich schlichtweg.Wenn er keine Synology hat, was sucht er dann hier
-
@tugsi
Such ich morgen mal raus und posten es hier.
Ich bin jetzt quasi schon im BettEdit:
@tugsi Hier mal meine Compose (IP-Adressen frei abgeändert/erfunden):version: '2.4' services: ioBroker: image: buanet/iobroker:latest container_name: ioBroker hostname: iobroker dns: - "192.168.0.1" - "1.1.1.1" dns_search: "lan" ports: - "8081:8081" - "8082:8082" - "8087:8087" - "9000:9000" - "9001:9001" environment: - TZ=Europe/Berlin - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - LANG=de_DE.UTF-8 - DEBIAN_FRONTEND=teletype - LANGUAGE=de_DE:de - LC_ALL=de_DE.UTF-8 # - SETGID=1000 # - SETUID=1000 # - PACKAGES=vim ssh - IOB_MULTIHOST=master - IOB_OBJECTSDB_HOST=0.0.0.0 - IOB_OBJECTSDB_PORT=9001 - IOB_OBJECTSDB_TYPE=jsonl - IOB_STATESDB_HOST=0.0.0.0 - IOB_STATESDB_PORT=9000 - IOB_STATESDB_TYPE=jsonl volumes: - /volume1/docker/ioBroker:/opt/iobroker networks: LAN: ipv4_address: 192.168.0.150 iobroker-db_default: restart: always networks: LAN: name: LAN driver: macvlan driver_opts: parent: bond0 ipam: config: - subnet: 192.168.0.0/24 ip_range: 192.168.0.200/29 gateway: 192.168.0.1 iobroker-db_default: name: iobroker-db_default driver: bridge ipam: config: - subnet: 172.21.0.0/16 gateway: 172.21.0.1
Der Container läuft in einem MACVLAN.
Außerdem im Multihost-Betrieb. Zum Kopieren der Compose und erfolgreichem Starten sollte man diese Dinge beachten und ggf. anpassen.
Dasiobroker-db_default
-Netz habe ich, weil ich zusätzlich einen MySQL/InfluxDB-Container separat laufen habe. Auch da müsste man die IP-Adressen anpassen oder das Netzwerk komplett entfernen. -
Hallo @andre , Forum,
habe Docker auf meiner DS220+ laufen, neueste Firmware.
Zusätzlich habe ich nach deinem HowTo Portainer installiert und ein neues MACVLAN eingerichtet.
Mit diesem Script erstelle ich den Container:docker run -d --name=ioBroker \ --network ioBroker \ -p 502:502 \ -p 1502:1502 \ -p 1880:1880 \ -p 1883:1883 \ -p 2001:2001 \ -p 8081:8081 \ -p 8282:8282 \ -p 8088:8088 \ -p 8284:8284 \ -v /volume1/docker/iobroker:/opt/iobroker \ --restart always \ buanet/iobroker:latest
Frage 1: ist es korrekt, dass im Docker der neue Container NICHT mehr angezeigt wird sondern nur noch über Portainer?
Frage 2: Als ich noch das Bridge Network verwendet habe, konnte sich ioBroker direkt zur Influxdb im anderen Container verbinden. Das geht über das MACVLAN jetzt nicht mehr:
influxdb.0 2022-12-30 17:25:42.927 error Error: connect EHOSTUNREACH 192.168.178.181:8087 influxdb.0 2022-12-30 17:25:39.916 info Influx DB Version used: 1.x influxdb.0 2022-12-30 17:25:39.915 info Connecting http://nas.fritz.box:8087/ ...
Muss die jetzt auch mit in das MACVLAN?
Danke
Henri -
@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Der Container läuft in einem MACVLAN.
Außerdem im Multihost-Betrieb. Zum Kopieren der Compose und erfolgreichem Starten sollte man diese Dinge beachten und ggf. anpassen.
Das iobroker-db_default-Netz habe ich, weil ich zusätzlich einen MySQL/InfluxDB-Container separat laufen habe. Auch da müsste man die IP-Adressen anpassen oder das Netzwerk komplett entfernen.Danke für die Vorlage.
Bei mir ist auch MACVLAN, Multihost etc drin
Aber ich schaue mir das mal an und werde mir das mal als Vorlage zum umstellen auf Stack/Compose annehmen. -
@hennerich sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Frage 1: ist es korrekt, dass im Docker der neue Container NICHT mehr angezeigt wird sondern nur noch über Portainer?
Jo, das ist wahrscheinlich nicht wirklich normal, ist aber das, was ich oben schonmal gesagt habe, dass Portainer nicht zu 100% mit Synology harmoniert. Ich persönlich nutze die Docker-Oberfläche im DSM nur um Portainer ein- oder auszuschalten.
Frage 2: Als ich noch das Bridge Network verwendet habe, konnte sich ioBroker direkt zur Influxdb im anderen Container verbinden. Das geht über das MACVLAN jetzt nicht mehr:
Muss die jetzt auch mit in das MACVLAN?Ja, bzw. auch nein.
Du kannst deine Influx auch hochfahren und deinen ioBroker zusätzlich in das Influx-Network ziehen. So ähnlich mache ich es ja auch (siehe compose-Datei oben).
Einfacher ist es allerdings wenn du die Influx auch in dein MACVLAN holst.@tugsi
Ich wünsche viel Erfolg und Vergnügen@bean
Gleiches Problem gerade beim Kollegen gehabt. Portainer Downgrade auf z.B. 2.15.1 brachte Erfolg. Damit ließ sich der gleiche Stack hochfahren - mit der neusten Portainerversion nicht.
Dazu einfach als Imageportainer/portainer-ce:2.15.1
nutzen und nicht daslatest
-
@hennerich sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Frage 2: Als ich noch das Bridge Network verwendet habe, konnte sich ioBroker direkt zur Influxdb im anderen Container verbinden. Das geht über das MACVLAN jetzt nicht mehr:
Nur zum Verständnis.
ioBroker im MACVLAN heißt, dass es für sich ein eigenes Netzwerk hat und eine eigene IP, zB 192.168.178.181
In Docker-Universum haben die ganzen Container eine IP-Adresse aus dem Bereich 172.17.0.x (im Normalfall).
Deswegen machst Du eine Bridge, dass quasi das Routing von deinem MACVLAN zum Docker-IP-Netzwerk macht.
IPV4 Subnet - 172.17.0.0/16 IPV4 Gateway - 172.17.0.1Deine Fehlermeldung sagt ja, dass influxdb die 192.168.178.181 nicht erreicht.
Logisch, weil der Container im 172.17.0.0/16 Netzwerk festhängt.
Du musst im ioBroker Container zusätzlich unter Netzwerke nicht nur das MACVLAN und die Bridge, auch das Netzwerk von influxdb eintragen.Oder Du gibst influx auch eine IP aus dem 192.168.178.x Bereich, also auch ein MACVLAN.
Ich habe bei mir noch ein Prioxmox-System und da läuft influx und grafana zusammen in einem LXC.
Vorteil, hat eine eigene IP-Adresse in meinem Heimnetzwerk und könnte auch von anderen Dingen angesprochen werden.Ist halt etwas tricky.
-
@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Einfacher ist es allerdings wenn du die Influx auch in dein MACVLAN holst.
@tugsi sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Oder Du gibst influx auch eine IP aus dem 192.168.178.x Bereich, also auch ein MACVLAN.
Es gibt keinen technischen Grund auch die Influx DB (oder andere Services wie grafana, redis, mariadb usw.) über MACVLAN in Betrieb zu nehmen! Das ist Quatsch und sollte auch nicht empfohlen werden. Immerhin ist einer der Vorteile von Docker, dass man die Services, die nicht direkt über das (Heim)Netzwerk erreichbar sein müssen komplett von diesem abschirmen kann. Brauch man doch einen Zugriff von Extern reicht man einen Port durch (wie bei einer Firewall)
Meine Empfehlung:
MACVLAN: iobroker (für den Zugriff von außen und erweiterte Netzwerkfunktionen)
Bridge: influxdb (kommuniziert intern mit iobroker und grafana), grafana (kommuniziert intern mit influxdb, Portfreigabe nach extern für web UI), ioBroker (kommuniziert intern mit influxdb)MfG,
André -
@andre sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Das ist Quatsch und sollte auch nicht empfohlen werden.
Stimmt, hatte soweit jetzt gar nicht nachgedacht... es reicht ja auch die Bridge bzw ein Port durchzureichen.
Wie ich ja schrieb, habe ich das auf ein CT im Proxmox, deswegen bin ich auf die IP-Adresse gekommen.
Manchmal sollte man so am Jahresende erstmal nachdenken