NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@andre
Ich kann auf Deiner Seite hier nichts posten, die Seite hört nicht auf zu laden.Wenn ich nämlich den iobroker mit den von Dir vorgeschlagenen Volumes installieren will,
bekomme ich folgende Fehlermeldung:, ------------------------------------------------------------, --------------- 2019-12-19 18:07:03 ---------------, ------------------------------------------------------------, , ------------------------------------------------------------, ----- Welcome to your ioBroker-container! -----, ----- Startupscript is now running. -----, ----- Please be patient! -----, ------------------------------------------------------------, , ------------------------------------------------------------, ----- Debugging information -----, ----- -----, ----- System -----, ----- arch: x86_64 -----, ----- -----, ----- Versions -----, ----- image: v4.0.0 -----, ----- node: v10.17.0 -----, ----- npm: 6.11.3 -----, ----- -----, ----- ENV -----, ----- AVAHI: false -----, ----- PACKAGES: nano -----, ----- SETGID: 1000 -----, ----- SETUID: 1000 -----, ------------------------------------------------------------, , ------------------------------------------------------------, ----- Step 1 of 5: Installing additional packages -----, ------------------------------------------------------------, , The following packages will be installed: nano..., Done., , ------------------------------------------------------------, ----- Step 2 of 5: Detecting ioBroker installation -----, ------------------------------------------------------------, , There is data detected in /opt/iobroker, but it looks like it is no instance of iobroker!, Please check/ recreate mounted folder/ volume and restart ioBroker container.,
Und es ist unerheblich ob ich mittels den Container kopiere oder aus dem Image neu erstelle.
-
@Fichtendickicht
Ich glaube du musst dir ganz dringend noch ein paar Basics zu Docker aneignen....@Fichtendickicht sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Wenn ich das richtig verstehe, wird die bridge auf dem Host (meiner DS) erstellt obwohl ich das Netzwerk im Portainer errichtet habe.
Portainer ist nur eine Webobefläche zur Administration von Docker, was als Dienst auf der DS läuft den du über das Docker-paket im DSM installiert hast... Du kannst nichts im Portainer einrichten. Die kannst nur mit Hilfe von Portainer etwas unter Docker einrichten....
@Fichtendickicht sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Und weil die Bridge auf dem Host erstellt wird führt das auf der Bridge eingetragene Gateway immer zu dem Container welcher an die Bridge angeschlossen ist.
Das Bridge-Netzwerk ist ein virtuelles Netz, dass nur innerhalb von Docker auf deiner DS existiert. Dabei führt das Gateway immer auf die DS.
BTW:
@andre sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Nichts vernünftiges im Web zu finden? Dann muss ich das heute Abend wohl mal ändern! #knowledgebase
Brauch ich nichtmal was tun. Habe ich im Mai schon gemacht: https://buanet.de/knowledge-base/eigenes-bridged-netzwerk-anlegen/
MfG,
André -
@andre said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Brauch ich nichtmal was tun. Habe ich im Mai schon gemacht: https://buanet.de/knowledge-base/eigenes-bridged-netzwerk-anlegen/
Du hast Recht, ich habe erst gestern damit begonnen un muss noch viel lernen.
Aus Deinem Tutorial kann ich jedoch nicht entnehmen, dass die Gateway IP der Bridge auch gleichzeitig die Verbindung zum DS-Host ist um bsp-weise eine externe SQL-Datenbank anzubinden.Und hier hab ich nur ausgeführt was
@duffbeer2000 said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@Fichtendickicht Das Bridge Network wird auf dem Host erstellt. Daher ist der Host auch immer das Gateway.
-
@Fichtendickicht sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@andre
Ich kann auf Deiner Seite hier nichts posten, die Seite hört nicht auf zu laden.Wenn ich nämlich den iobroker mit den von Dir vorgeschlagenen Volumes installieren will,
bekomme ich folgende Fehlermeldung:, ------------------------------------------------------------, --------------- 2019-12-19 18:07:03 ---------------, ------------------------------------------------------------, , ------------------------------------------------------------, ----- Welcome to your ioBroker-container! -----, ----- Startupscript is now running. -----, ----- Please be patient! -----, ------------------------------------------------------------, , ------------------------------------------------------------, ----- Debugging information -----, ----- -----, ----- System -----, ----- arch: x86_64 -----, ----- -----, ----- Versions -----, ----- image: v4.0.0 -----, ----- node: v10.17.0 -----, ----- npm: 6.11.3 -----, ----- -----, ----- ENV -----, ----- AVAHI: false -----, ----- PACKAGES: nano -----, ----- SETGID: 1000 -----, ----- SETUID: 1000 -----, ------------------------------------------------------------, , ------------------------------------------------------------, ----- Step 1 of 5: Installing additional packages -----, ------------------------------------------------------------, , The following packages will be installed: nano..., Done., , ------------------------------------------------------------, ----- Step 2 of 5: Detecting ioBroker installation -----, ------------------------------------------------------------, , There is data detected in /opt/iobroker, but it looks like it is no instance of iobroker!, Please check/ recreate mounted folder/ volume and restart ioBroker container.,
Und es ist unerheblich ob ich mittels den Container kopiere oder aus dem Image neu erstelle.
Die Fehlermeldung die ich ins Logging eingebaut habe sagt doch eigentlich alles:
There is data detected in /opt/iobroker, but it looks like it is no instance of iobroker!, Please check/ recreate mounted folder/ volume and restart ioBroker container.,
Wenn du einen Ordner einbindest prüft das Script ob sich dort eine ioBroker-Installation befindet. Wenn ja, passiert nichts, wenn der Ordner Leer ist, wird er vom Script gefüllt, sind Daten im Ordner, die aber nicht als ioBroker-Installation identifiziert werden können bricht das Script ab... Was bei dir der Fall ist. Scheint als sei dein Ordner nicht leer. Wenn du mir einem leeren Ordner starten willst, lösche den Ordner auf deiner DS nochmal und lege ihn neu an...
@Fichtendickicht sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Aus Deinem Tutorial kann ich jedoch nicht entnehmen, dass die Gateway IP der Bridge auch gleichzeitig die Verbindung zum DS-Host ist um bsp-weise eine externe SQL-Datenbank anzubinden.
Dem kann ich nur zustimmen. Das Thema mit dem zweiten Bridge-Netzwerk wird aber auch gar nicht im Tutorial behandelt
MfG,
André -
Danke hat jetzt, nachdem ich ein eigenes Bridge Netzwerk angelegt habe hat es geklappt. Daten kommen im Iobroker an.
Ich meine es hätte woh auch über das Standard Bridge funktioniert - hätte ich in meinem Script auch die "BridgeIP" genommen... anstelle der Macvlan Adresse. Denkfehler...
war aber schwere Geburt!
auch allen anderen Beteiligten Vielen Dank für die konstruktiven Vorschläge -
Hallo zusammen,
iobroker läuft eigentlich ohne Probleme im Docker auf meiner DS218+ im Host - Modus.
Leider nur die Console funktioniert nicht mehr seit einiger Zeit, keine Ahnung warum.
Ich habe mir nun Zeit genommen auch die Installation über Portainer einmal auszuprobieren.
Ich habe soweit alles nach Anleitung hinbekommen. Auch hier habe ich den Container im Host-Modus angelegt, und zuvor meine alte Installation in den neu eingerichteten Ordner kopiert.
Beim ersten Start bekomme ich immer die gleichen fünf Zeilen (node:377) im Log und iobroker startet auch nicht.host.Server check instance "system.adapter.fullybrowser.0" for host "Server" host.Server check instance "system.adapter.fb-checkpresence.0" for host "Server" (node:377) UnhandledPromiseRejectionWarning: ParserError: Protocol error, got "H" as reply type byte. Please report this. at handleError (/opt/iobroker/node_modules/redis-parser/lib/parser.js:190:15) at parseType (/opt/iobroker/node_modules/redis-parser/lib/parser.js:304:14) (node:377) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:377) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Kann mir hier jemand weiterhelfen.
Vielen Dank
Heiko
-
Eine kleine Frage bzgl. Portainer.
Wenn ich in meinem ioBroker-Docker-Container mal die ENV anpassen möchte, dann kann ich ja oben auf "Duplicate/Edit" klicken und dann dort unter Advanced container settings - ENV die Einstellungen vornehmen.
Aber jetzt möchte ich ja nur dieses ändern und nicht gleich einen neuen Container generieren oder ähnliches.
Also müsste ich doch "Always pull the image" ausschalten ...
Aber was passiert dann, wenn ich "Deploy the container" klicke?
Holt er sich dann das Image, was er damals schon runtergezogen hat und erzeugt quasi daraus den neuen Container mit den alten bzw neuen Einstellungen von Env?
Bin mir da noch etwas unsicher und wollte über Weihnachten jetzt nicht nur am ioBroker sitzenbtw Frohe Weihnachten euch allen!
-
@tugsi sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Aber was passiert dann, wenn ich "Deploy the container" klicke?
Dann wird ein neuer Container erstellt. Was an sich dich nicht stören sollte, was ich nur schwer beurteilen kann. WIeso meinst du keinen neuen Container erstellen zu wollen?
-
@dos1973 sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Danke hat jetzt, nachdem ich ein eigenes Bridge Netzwerk angelegt habe hat es geklappt. Daten kommen im Iobroker an.
Ich meine es hätte woh auch über das Standard Bridge funktioniert - hätte ich in meinem Script auch die "BridgeIP" genommen... anstelle der Macvlan Adresse. Denkfehler...
war aber schwere Geburt!
auch allen anderen Beteiligten Vielen Dank für die konstruktiven Vorschläge@andre @duffbeer2000
ich zitiere mich mal selbst um nochmals den Kontext herzustellen
ich habe inzwischen macvlan und bridge konfiguriert.wenn mein container startet, dann hat mein Harmony Adapter kein Connect?!
Ich muss das Bridge Netzwerk entfernen und kann es gleich wieder hinzufügen, dann läuft der Harmony Adapter wieder.hat jemand einen Vorschlag wie ich das umgehen kann.
mein Container startet jede Nacht um 5:00 Uhr um das Backup zu machen.
Das stammt aus der v2 Buanet Anleitung -
@a200 Vielleicht etwas falsch ausgedrückt.
Erstellt der einen neuen mit neuer Bezeichnung und behält den alten oder überschreibt er den?
Ich denke halt "einfach", es ist doch nur ein ENV-Variable die ich setze, die könnte beim Start des bisherigen Containers doch einfach gesetzt werden und dann brauch er nicht alles neu machen, sprich Zeitersparnis. -
@tugsi da du wahrscheinlich den iobroker in einem gemounteten Verzeichnis hast, wird iobroker-mäßig nichts neu aufgebaut. es wird ein neuer Container mit der neuen ENV-Variable erstellt. Alles andere (iobroker) bleibt unverändert.
-
@tugsi "Always pull the image" sorgt dafür das er jedes mal beim editieren schaut ob er noch die aktuelle Version vom Image hat. Wenn es nichts neueres gibt lädt er auch nichts herunter. Beim editieren wird der alte container gelöscht und ein neuer erstellt. Das ist der Standardweg bei Containern. Wie @a200 schon gesagt hat beibt alles andere unverändert. Vorteil davon ist das man immer einen definierten Stand hat wenn der Container wieder startet und somit auch Probleme schneller behoben sind. Bei der Zeitersparnis geht es hier um ein paar Sekunden wenn es keine neue Version gibt.
-
@dos1973 Was steht denn bei Discovery Subnet im Harmony Adapter? Ich denke da musst du das vom "DS_mcvlan_clients" eintragen.
-
@duffbeer2000 @a200
Danke euch.
und ja, ich habe wie buanet beschrieben hat, iobroker-data in einem gemounteten Verzeichnis.
Ok, dann weiß ich Bescheid -
@duffbeer2000
Aktuell broadcast 255.255.255.255 -
Kleine Frage. Jedes Mal, wenn ich einen installierten Adapter löschen will, sagt mir der ioBroker, dass das nicht funktioniert hat und dass ich das manuell machen soll. Das Installieren eines Adapters sowie der Instanzen und das Aktualisieren klappt dagegen einwandfrei. Jemand eine Idee?
-
@dos1973 Problem ist das ich selbst keine Harmony habe sonst könnte ich es testen. Versuche mal bei Discovery Subnet die 192.168.10.255 oder 192.168.10.0. Könnte funktionieren, alternativ wäre noch die Möglichkeit im Adapter die IP der Harmony fest einzutragen.
-
@dtp sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Kleine Frage. Jedes Mal, wenn ich einen installierten Adapter löschen will, sagt mir der ioBroker, dass das nicht funktioniert hat und dass ich das manuell machen soll. Das Installieren eines Adapters sowie der Instanzen und das Aktualisieren klappt dagegen einwandfrei. Jemand eine Idee?
Dieses Verhalten ist bei mir das Gleiche unter der Docker Version 4.0
-
@Knallochse sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Dieses Verhalten ist bei mir das Gleiche unter der Docker Version 4.0
Danke.
@andre Kannst du versuchen, das zu fixen?
-
@andre said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@whfor Habe es auf meinem Testsystem zum Laufen gebracht. Vielleicht hilft dies hier:
Hallo
ich habe iobroker auf meinem Synology NAS als Docker Container laufen (erstellt nach dem in diesem Thread verlinkten Tutorial) und möchte gerne im node-red Adapter das Modul amazon-echo-hub (Modul von node-red) verwenden, um mit meinem Echo Dot 3 zu kommunizieren.Das node-red Modul muss den Echo bekanntermaßen ja zwingend auf Port 80 ansprechen. Da dieses node-red standardmäßig nicht möglich war Fehlermeldung: "unable to start on port 80" in node-red.
Wollte ich in der Konsole von iobroker über den im obigen Post erwähnten Befehl:setcap 'cap_net_bind_service=+ep' `which node`
node-red die Berechtigung erteilen Port 80 zu verwenden. Leider ohne Erflog beim Ausführen der Anweisung erhalte ich nur folgenden output in der Konsole:
root@iobroker:/opt/iobroker# setcap 'cap_net_bind_service=+ep' `which node` Failed to set capabilities on file `/usr/bin/node' (Operation not supported) The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file
Zutr Lösung des Problems habe nochmals in Portainer nohmals einen aktuellen ioBroker-Container über "buanet/iobroker:latest" erstellt und darauf geachtet, dass unter Capabilities NET_BIND_SERVICE aktiviert ist, leider mit selbigen Ergebnis, dass mir beim Ausführen des Kommandos die oben genannte Fehlermeldung angezeigt wird.
Mein Setup:
Synology DS216+II (DSM 6.2.2)
Docker:- Portainer 1.21.0 (bridge)
- iobroker 3.6.12 (MACVLAN)
Woran könnte dieses jetzt liegen?
Bestehen noch andere Möglichkeiten Port 80 für node-red freizugeben? Ich habe noch etwas von iptabels gelesen, ist dies mit Betrieb als Docker Image überhapt möglich, falls ja wo müsste ich diese setzten?
ein starten von node-red mit root rechten über die Konsole mit sudo iobroker start node-red ist leider nicht Ausreichend, in node-red heißt es dann weiterhin "unable to start on port 80".Über Lösungsvorschläge bin ich dankbar.
Grüße
AndreasMod-Edit: Vollzitat gekürzt! Bitte vermeidet Vollzitate! Siehe Forum Regeln, Punkt 2