NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
Hey! Cooles Projekt mit Docker. Funktioniert einwandfrei. Gute Anleitung!
Wollte heute mal ein Update fahren. Habe aus diesem Forumsbeitrag rausgelesen, dass man folgende Kombination verwenden kann um ein Update des Containers zu machen und danach ein Update von js-controller durchführen kann:
Update Container:````
apt-get update
apt-get upgradeUpdate js-controller:```` pkill io npm install iobroker.js-controller –production node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &
Leider kommt dann folgender Fehler:````
root@buanet-iobroker1:/opt/iobroker# pkill io
root@buanet-iobroker1:/opt/iobroker# npm install iobroker.js-controller –product
ion
npm ERR! addLocal Could not install /opt/iobroker/–production
npm ERR! Linux 3.10.102
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.js-controller"
"–production"
npm ERR! node v6.13.1
npm ERR! npm v3.10.10
npm ERR! path /opt/iobroker/–production
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall opennpm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/–producti
on'
npm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/–producti
on'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoentnpm ERR! Please include the following file with any support request:
npm ERR! /opt/iobroker/npm-debug.log
[1]+ Exit 1 node node_modules/iobroker.js-controller/controlle
r.js > /opt/scripts/docker_iobroker_log.txt 2>&1
root@buanet-iobroker1:/opt/iobroker# node node_modules/iobroker.js-controller/co
ntroller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &
[1] 10117Habt Ihr eine Idee? Danke euch! `
Hallo,
das ist kein Docker-spezifisches Problem. Dir fehlt einfach das zweite Minuszeichen im Befehl:
npm install iobroker.js-controller --production
MfG,
André
Gesendet von iPad mit Tapatalk Pro
-
ah ok, dass stimmt natürlich.
Kommen trotzdem noch Fehler. Noch eine Idee?
root@buanet-iobroker1:/opt/iobroker# pkill io [1]+ Exit 1 node node_modules/iobroker.js-controller/controlle r.js > /opt/scripts/docker_iobroker_log.txt 2>&1 root@buanet-iobroker1:/opt/iobroker# npm install iobroker.js-controller –-produc tion npm ERR! addLocal Could not install /opt/iobroker/–-production npm ERR! Linux 3.10.102 npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.js-controller" "–-production" npm ERR! node v6.13.1 npm ERR! npm v3.10.10 npm ERR! path /opt/iobroker/–-production npm ERR! code ENOENT npm ERR! errno -2 npm ERR! syscall open npm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/–-product ion' npm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/–-product ion' npm ERR! enoent This is most likely not a problem with npm itself npm ERR! enoent and is related to npm not being able to find a file. npm ERR! enoent npm ERR! Please include the following file with any support request: npm ERR! /opt/iobroker/npm-debug.log
-
ah ok, dass stimmt natürlich.
Kommen trotzdem noch Fehler. Noch eine Idee?
root@buanet-iobroker1:/opt/iobroker# pkill io [1]+ Exit 1 node node_modules/iobroker.js-controller/controlle r.js > /opt/scripts/docker_iobroker_log.txt 2>&1 root@buanet-iobroker1:/opt/iobroker# npm install iobroker.js-controller –-produc tion npm ERR! addLocal Could not install /opt/iobroker/–-production npm ERR! Linux 3.10.102 npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.js-controller" "–-production" npm ERR! node v6.13.1 npm ERR! npm v3.10.10 npm ERR! path /opt/iobroker/–-production npm ERR! code ENOENT npm ERR! errno -2 npm ERR! syscall open npm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/–-product ion' npm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/–-product ion' npm ERR! enoent This is most likely not a problem with npm itself npm ERR! enoent and is related to npm not being able to find a file. npm ERR! enoent npm ERR! Please include the following file with any support request: npm ERR! /opt/iobroker/npm-debug.log ```` ` Hallo,
immernoch derselbe Fehler. Schau dir mal die Bindestriche vor production an.
Hatte das in meinem Post per copy and paste übernommen. Sollte jetzt korrigiert sein…
MfG,
André
Gesendet von meinem Smartphone mit Tapatalk
-
Der Docker Container läuft perfekt, vielen Dank dafür.
Habe noch eine Synology-spezifische Frage: Ich möchte auch die ioBroker-Authentifikatiion zum Schutz von admin und vis in Betrieb nehmen. Wie an mehreren Stellen zu lesen ist, geht das nur in Verbindung mit "Verschlüsselung(HTTPS)" und eigenen Zertifikaten. Das funktioniert bei mir allerdings nicht, da ja die Synology die Ports 80 & 443 besetzt hat und sich darüber selbst Zertifikate über Lets encrypt beschafft.
Bisher habe ich das immer gelöst, in dem ich unter Synology/Anwendungen den reverse Proxy (nginx) aktiviert habe und lasse bepielsweise nextcloud.xxx.myds.me auf den Docker-Port der Anwendung verweisen, so dass ich hier kein Zertifikat mehr benötige.
Das würde ich für den ioBroker auch so machen und alles den Zugriff nur noch über die IP der Synology zu damit keiner den https umgehen kann.
Wie kann ich den hhtps-Zwang für die Authentifikation befriedigen wenn ich Port 80 für iobroker nicht bereit stellen kann?
Muss ich die Zertifikate etwa alle 3 Monate von der Synology in ioBroker importieren?
Gruß, Ralf `
Hallo Ralf,
wollte das immer mal einrichten, habe es bisher aber nicht geschafft.
Wenn du da Erkenntnisse hast, würde ich mich über einen Wissensaustausch freuen. Wäre ein schönes Thema für ein ergänzendes Tutorial.
Wenn ich richtig liege hast du mich ja auch schon per Mail kontaktiert. Ich werde heute Abend mal mein Notebook aufklappen und mir das Thema genauer anschauen. Melde mich dann per Mail bei dir.
Bin aktuell im Oster-Urlaub…
MfG,
André
Gesendet von meinem Smartphone mit Tapatalk
-
Mhhh… das hat zwar im ersten Augenblick geklappt. Jetzt geht nur leider gar nichts mehr
Siehe Anhang vom Terminal...
Kannst du helfen?
Vielen Dank!
6445_screenshot_2018-03-29_13.54.44.png
6445_screenshot_2018-03-29_13.55.07.png -
Mhhh… das hat zwar im ersten Augenblick geklappt. Jetzt geht nur leider gar nichts mehr
Siehe Anhang vom Terminal...
Kannst du helfen?
Vielen Dank! ` Mhh, kann leider mobil nur wenig auf dem Screenshot erkennen. Wenn ich das richtig verstehe meckert er ein Paket "pseudomap" an. Versuch mal npm install pseudomap
Dann ggf. Nochmal den js-controller drüber installieren und den Container neu starten.
Das Problem könnte aber auch bei nicht Docker Installationen auftreten. Hast du mal im Forum danach gesucht?
MfG,
André
Gesendet von meinem Smartphone mit Tapatalk
-
Hat sich erstmal erledigt. Danke für den Support und frohe Ostern!
-
Meine Uhrzeit in iobroker ist genau 2 Stunden falsch. Auf dem NAS ist die Zeit aber richtig. Wie kann ich die Zeit bei dem Docker-Image ändern?
Danke!
-
Meine Uhrzeit in iobroker ist genau 2 Stunden falsch. Auf dem NAS ist die Zeit aber richtig. Wie kann ich die Zeit bei dem Docker-Image ändern?
Danke! `
probiermal mit
dpkg-reconfigure tzdata
-
Top Funktioniert. Vielleicht kann man das ganze in zukünftige Docker Images integrieren.
Vielen Dank!
-
Top Funktioniert. Vielleicht kann man das ganze in zukünftige Docker Images integrieren.
Vielen Dank! `
Hallo,das kann man… ist sogar schon lange im Image enthalten. Kann mir nicht erklären warum es ab und an nicht stimmt. Hatte ich selbst auch schon einmal.
Zum Test habe ich gerade noch einmal einen frischen Testcontainer aus dem aktuellen Beta-Image erstellt. Zeitzonen und locales Einstellungen ok... Wenn mir jemand die Ursache für die manchmal fehlerhafte Zeitzoneneinstellung zeigt, tue ich mein Bestes für nen Fix. Aktuell kann ich aber keinen Fehler feststellen
MfG,
André
-
Also ich hab's so gelöst: https://forum.iobroker.net/viewtopic.php?f=22&t=13014&p=137748#p137748!
Gruß,
Thorsten
-
@dtp:Also ich hab's so gelöst: https://forum.iobroker.net/viewtopic.php?f=22&t=13014&p=137748#p137748!
Gruß,
Thorsten `
Danke für den Tipp. Das kann ich mit in das Image einbauen. bleibt nur die Frage warum meine Zeitzone stimmt wenn ich einen neuen Container erstelle und bei anderen nicht…
MfG,
André
Gesendet von iPad mit Tapatalk Pro
-
Hallo zusammen,
ich habe in dem Thema meine DS415play nicht gefunden und auf der ersten Seite in dem Link
https://www.synology.com/de-de/dsm/packages/Docker
ist meine DS415Play nicht drin so wie ich das sehe.
Also gibt es keinen weg IOBroker auf der DS415Play laufen zu lassen?
Ich weiß das das vielleicht ne unnötige Farge ist wenn es da schon nicht drin steht, aber einen Versuch ist es wert da die Forumssuche mit dem Begriff DS415play nicht viel ausgibt.
Warum würde das denn nicht gehen, ist die DS415play eventuell zu schwach auf der Brust?
Wäre natürlich schon verlockend es dort zu Installieren da die 24/7 läuft und es wird kein weiterer Pi benötigt.
Danke
-
Hallo Andre,
danke für die super Arbeit. Ich hätte da ein Paar (ggf. Anfänger) Fragen.
Mein System:
-
Synology DS916+ mit Docker
-
Iobroker latest (geladen am 31.03.18)
Ich bin Deinem Tutorial gefolgt und habe alles auch so eingerichtet. Ich könnte jetzt jederzeit die Container in Docker wie beschreiben wechseln.
Woran kann ich erkennen das der Container die Version 1.1.1 von 28.03.18 enthält, wie in Github beschrieben (heisst ja immer latest)?
Wenn man denn den Container wechseln kann, wozu braucht man denn dann diese Befehle?
–--------------------------------------------------------------------------------------------------------------------------------------
apt-get update
apt-get upgrade
pkill io
npm install iobroker.js-controller –-production
node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &
Werden die Adapter automatisch im Docker geupdatet, oder muss man immer auf eine neue Version warten?
Wie kann ich den latest Container mit dem beta Container updaten? Oder geht das so nicht? Ich finde die neue Admin Oberfläche erheblich besser (habe ich in youtube gesehen). Wann wird aus Deiner Sicht beta = latest?
Vielen Dank für Deine Hilfe <emoji seq="1f60a"></emoji>.
Thomas
-
-
Ich finde die neue Admin Oberfläche erheblich besser (habe ich in youtube gesehen). Wann wird aus Deiner Sicht beta = latest? `
Um den Admin-Adapter in der Version 3.x zu installieren, brauchst du doch nur den aktiven Verwahrungsort des ioBroker in den Einstellungen auf latest zu stellen. Bei mir laufen ioBroker.admin 3.3.5 und js-controller 1.4.0 ohne Probleme mit der Version 1.1.0 von buanets docker-iobroker.
Gruß,
Thorsten
-
Hallo zusammen,
ich habe in dem Thema meine DS415play nicht gefunden und auf der ersten Seite in dem Link
https://www.synology.com/de-de/dsm/packages/Docker
ist meine DS415Play nicht drin so wie ich das sehe.
Also gibt es keinen weg IOBroker auf der DS415Play laufen zu lassen?
Ich weiß das das vielleicht ne unnötige Farge ist wenn es da schon nicht drin steht, aber einen Versuch ist es wert da die Forumssuche mit dem Begriff DS415play nicht viel ausgibt.
Warum würde das denn nicht gehen, ist die DS415play eventuell zu schwach auf der Brust?
Wäre natürlich schon verlockend es dort zu Installieren da die 24/7 läuft und es wird kein weiterer Pi benötigt.
Danke `
Hallo,
mir ist kein Weg bekannt, wie du auf einen System, welches das Docker Paket von Synology nicht unterstützt trotzdem eine Installation durchführen kannst. Vielleicht bist du damit im Synology-Forum besser aufgehoben.
Ich würde aber mal tippen, dass die 415play nicht genug Power hat… Von der CPU her wird es wohl gehen, aber 1GB RAM ist eigentlich zu knapp...
MfG,
André
-
du kannst es dirket auf dem NAS installieren .. also ohne den Docker container
wobei 1 GB ist mager
-
Hallo Thomas,
ich werde mal versuchen deine Fragen zu beantworten.
Ich bin Deinem Tutorial gefolgt und habe alles auch so eingerichtet. Ich könnte jetzt jederzeit die Container in Docker wie beschreiben wechseln.
Woran kann ich erkennen das der Container die Version 1.1.1 von 28.03.18 enthält, wie in Github beschrieben (heisst ja immer latest)? `
Das kannst du gar nicht. Liegt aber nicht an deinen Fähigkeiten, sondern an der Tatsache, dass "latest" immer die letzte "minor"-Version beinhaltet. Zur Erklärung, Versionierung erfolgt immer so:major.minor.build[.revision]
Bedeutet letztendlich:
1.0.0 ist eine major-version (latest wenn es keine höhere minor-version gibt)
1.1.0 ist eine minor-version (in diesem fall immer latest)
1.1.1 ist ein build (entspricht dem beta tag)
Der Tag latest zeigt also immer auf die letzte minor-version. Aktuell ist das 1.1.0.
Um die Version 1.1.1 zu nutzen musst du deinen Container also aus dem beta-Image erstellen.
Wenn man denn den Container wechseln kann, wozu braucht man denn dann diese Befehle?
–--------------------------------------------------------------------------------------------------------------------------------------
apt-get update
apt-get upgrade
pkill io
npm install iobroker.js-controller –-production
node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &
---------------------------------------------------------------------------------------------------------------------------------------- `
Jetzt wird es kompliziert.Die Images der einzelnen Versionen werden im Docker Hub (https://hub.docker.com/r/buanet/iobroker/) in regelmäßigen Abständen automatisch neu erstellt. Dies sorgt dafür, dass die installierten Pakete im Container immer einen aktuellen Stand haben. Die Intervalle sind dabei in der Regel:
beta = täglich
latest = wöchentlich
ältere Versionen = einmalig zum Release
Bedeutet, wenn du gestern ein latest oder beta Image geladen hast sind darin alle Pakete auf dem neusten Stand. Nach 3 Wochen gibt es aber sicherlich das ein oder andere Update bei den Linux-Paketen. Jetzt hast du zwei Möglichkeiten:
Entweder du nutzt apt-get upadate/ upgrade um die Pakete zu aktualisieren oder du lädst das aktuelle Image und erstellst den Container neu. Letzteres ist ja im Tutorial beschrieben und für mich auch der bevorzugte Weg.
@tloeffel:Werden die Adapter automatisch im Docker geupdatet, oder muss man immer auf eine neue Version warten? `
Aber ACHTUNG: Da wir im Tutorial den Ordner vom ioBroker ja auf die DS ausgelagert haben, finden hier bei der Aktualisierung des Containers keiner Updates statt. Das bedeutet: Alle Updates innerhalb deiner ioBroker-Installation (Adapter) musst du separat durchführen. Das geht in der Regel ja auch problemlos über den Admin. Einzige Ausnahme ist der js-controller (welcher aber auch im ioBroker-Ordner installiert ist). Willst du ihn updaten musst du dies über die Kommandozeile erledigen. Dazu dienen die von dir erwähnten Befehle:pkill io npm install iobroker.js-controller –-production node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &
Wie kann ich den latest Container mit dem beta Container updaten? Oder geht das so nicht? Ich finde die neue Admin Oberfläche erheblich besser (habe ich in youtube gesehen). Wann wird aus Deiner Sicht beta = latest? `
An dieser Stelle hat ja dtp schon kurz erläutert, wie du an den Admin v3 kommst:
@dtp:Um den Admin-Adapter in der Version 3.x zu installieren, brauchst du doch nur den aktiven Verwahrungsort des ioBroker in den Einstellungen auf latest zu stellen. Bei mir laufen ioBroker.admin 3.3.5 und js-controller 1.4.0 ohne Probleme mit der Version 1.1.0 von buanets docker-iobroker. `
Aber trotzdem nochmal der Hinweis. Updates des ioBroker selbst müssen immer unabhängig vom Container durchgeführt werden. Der Container bietet letztendlich nur die Hülle (Umgebung) in der der ioBroker läuft.Wenn du von latest auf beta wechseln willst, dann kannst du das ganz einfach tun. Lade dir das Beta-Image herunter. Stoppe den aktuellen ioBroker-Container. Erstelle aus dem Beta-Image einen neuen Container mit den selben Einstellungen wie der latest-Container und starte den neuen Container. Wenn alles läuft, den latest-Container löschen. Die beiden sollten keinesfalls zusammen laufen (Greifen dann ja auf das selbe ioBroker-Verzeichnis zu!
Ich hoffe ich habe deine Fragen beantworten können.
MfG,
André
-
du kannst es dirket auf dem NAS installieren .. also ohne den Docker container
wobei 1 GB ist mager `
Danke Andre und arteck für die Infos.
Worauf laufen den eure Systeme wenn 1 GB Arbeitsspeicher knapp ist der Raspberry Pi3 oder der Pi2 haben ja auch nicht mehr, aber halt wahrscheinlich nur für IOBroker reserviert.
Wenn ihr mir die Frage noch beantwortet.
Nun ja dann denke ich bin ich mal raus aus dem Thema hier, da meine Frage ja nichts mehr mit dem Thema zu tun hat.
Danke