NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
Vielen Dank für den Tipp mit reinstall.sh. Das hat alle Probleme gelöst.
Zwei oder mehr Container mit gleicher Basis denke ich geht nur, wenn du den Docker Befehl direkt oder mit docker-Compose ausführst.
Ich hoffe, dass ich heute noch dazu komme dazu was zu schreiben.
Aber wie schon von André geschrieben wurde, kannst du ja einfach den ioBroker Ordner in einen neuen Version 2.0 Container einbinden. Falls es nicht klappt, einfach wieder die alte Version des Containers nehmen.
-
Ich habe auf die Schnelle mal mein Vorgehen zusammengefasst und hoffe ich habe nichts vergessen.
-
Ich habe mal eine Frage.
Wie kann ich den Adapter js2fs benutzten?
Weil ich nicht weiß wie ich mich via scp verbinden kann.
Wenn ich die Dateien nur durchreiche via Docker,
bekomme ich Rechte Probleme.
ich möchte mit atom.io arbeiten. der hat ein scp plugin.
wie sind eigentlich die Passwörter ?
komme ich überhaupt via terminal(mac) auf die instanz rauf ?
Mit freundlichen Grüßen
kevin
-
Ich habe mal eine Frage.
Wie kann ich den Adapter js2fs benutzten?
Weil ich nicht weiß wie ich mich via scp verbinden kann.
Wenn ich die Dateien nur durchreiche via Docker,
bekomme ich Rechte Probleme.
ich möchte mit atom.io arbeiten. der hat ein scp plugin.
wie sind eigentlich die Passwörter ?
komme ich überhaupt via terminal(mac) auf die instanz rauf ?
Mit freundlichen Grüßen
kevin `
Hallo Kevin,
bitte nochmal ein paar Infos zu Docker recherchieren. Ich weiß nicht wie oft ich schon darauf hingewiesen habe, dass der Container weder ein virtueller Pi noch eine virtuelle Maschine ist.
Es gibt keine Passwörter. Nein, nichtmal ein Rechte- oder gar Usermanagement… Braucht ein Container aber auch nicht...
Alle Daten die du im Container ablegtst sind schlecht. Der Container soll eine leere, austauschbare Hülle sein und bleiben. Entweder du arbeitest mit einem weiteren eingehängten Volume oder du machst es wie ich und lässt den Adapter die Scripte in einem Backup Ordner innerhalb /opt/iobroker ablegen und greifst über die DiskStation darauf zu...
MfG,
André
Gesendet von Unterwegs...
-
Ich habe mal eine Frage.
Wie kann ich den Adapter js2fs benutzten?
Weil ich nicht weiß wie ich mich via scp verbinden kann.
Wenn ich die Dateien nur durchreiche via Docker,
bekomme ich Rechte Probleme.
ich möchte mit atom.io arbeiten. der hat ein scp plugin.
wie sind eigentlich die Passwörter ?
komme ich überhaupt via terminal(mac) auf die instanz rauf ?
Mit freundlichen Grüßen
kevin `
Welche Rechte Probleme genau hast du?
Kannst du nicht read/write zusätzlich vergeben für deinen User?
Ich hab da auch etwas rumgefrickelt, aber nun geht's perfekt.
-
> Es gibt keine Passwörter. Nein, nichtmal ein Rechte- oder gar Usermanagement… Braucht ein Container aber auch nicht...
Also als ich den ordern /opt/iobroker auf die Diskstation durchgereicht habe,
und ein backup nach der Anleitung wieder eingespielt hatte,
waren von alle Dateien und Ordner deren Privilegien, Besitzer und Gruppen durcheinander.
Ist das wirklich völlig egal?
> Welche Rechte Probleme genau hast du?
Also ich habe folgendes versucht:
1. Ordner via Terminal erstellt im Container /opt/user_java_scripts
2. js2fs diesen Ordner als ziel Ordner deklariert
3. root Verzeichnis ist /opt/iobroker
4. adapter gestaret, alle scripte wurden kopiert
5. order auf der diskstation erstellt
6. ordner zur cloudstation hinzugefügt
7. container beendet
8. ordner von container /opt/user_java_scripts durchgereicht zum ordner der diskstation
9. alle datein haben die rechte root:root
10. sobald ich scripte editiere ändert sich die rechte auf kevin.
weil ich via cloudstation mit dem user kevin arbeiten muss.
alles scripte mit root:root kann ich weder sehen noch ändern.
wenn ich alle scipte mit kevin:users ändere kann ich sie zwar ändern aber der sync klappt nicht….
> Ich hab da auch etwas rumgefrickelt, aber nun geht's perfekt.
sag mir bitte wie du das gelöst hast.
-
> Es gibt keine Passwörter. Nein, nichtmal ein Rechte- oder gar Usermanagement… Braucht ein Container aber auch nicht...
Also als ich den ordern /opt/iobroker auf die Diskstation durchgereicht habe,
und ein backup nach der Anleitung wieder eingespielt hatte,
waren von alle Dateien und Ordner deren Privilegien, Besitzer und Gruppen durcheinander.
Ist das wirklich völlig egal? `
Nein, natürlich nicht völlig egal.
Docker selbst läuft immer als root. Erstellt man einen Container im Standard, läuft dieser auf dem Host auch als root und greift auch so auf Dateien auf dem Host zu. Es gibt aber eine Möglichkeit dem Container eine uid und eine gid mit zu geben. Dann würde der Container unter dem entsprechenden (Host-)User laufen. Habe ich persönlich aber noch nicht mit experimentiert und kann auch nicht sagen was das ggf für Auswirkungen auf iob hat…
MfG,
André
Gesendet von Unterwegs...
-
> Ich hab da auch etwas rumgefrickelt, aber nun geht's perfekt.
sag mir bitte wie du das gelöst hast. `
Hab gerade nachgeschaut, aktuell hab ich es gelöst mit read/write für "everyone" auf dem Ordner von js2fs.
-
@nisio:> Ich hab da auch etwas rumgefrickelt, aber nun geht's perfekt.
sag mir bitte wie du das gelöst hast. `
Hab gerade nachgeschaut, aktuell hab ich es gelöst mit read/write für "everyone" auf dem Ordner von js2fs. `
Hast du alle scripte in einem Ordner?
ich habe einige unterordner.
-
Ich habe auch Unterordner global, common, test, …
Meintest du die?
-
@nisio:Ich habe auch Unterordner global, common, test, …
Meintest du die? `
Ja genau. Das bedeutet, wenn man neue ordner erstellt, müssen die rechte angepasst werden?
Für jedes neues script müssen die rechte angepasst werden?
-
@nisio:Ich habe auch Unterordner global, common, test, …
Meintest du die? `
Ja genau. Das bedeutet, wenn man neue ordner erstellt, müssen die rechte angepasst werden?
Für jedes neues script müssen die rechte angepasst werden? `
Für neue Skripte muss ich nix anpassen, das klappt automatisch.
-
Hallo zusammen,
nach dem Update auf den container 2.0.0 habe ich ein Problem mit dem fs-Object.
Mit diesem javascript habe ich immer Bilder von der Kamera kopiert:
const fs = require('fs'); const ESKcam1URL = 'http://x.x.x.x/web/tmpfs/snap.jpg&-usr=xxx&-pwd=xxx'; const ESKcam1PIC = 'iobroker-data/files/icons-esk/ESKcam.jpg'; function AdapterESKcam() { request(ESKcam1URL).pipe(fs.createWriteStream(ESKcam1PIC)); }
Nach dem Container-Update und reinstall.sh kommt jetzt immer folgende Meldung im Log:
2018-12-24 13:59:11.428 - info: javascript.0 Start javascript script.js.esk_prod.AdapterESKcam 2018-12-24 13:59:11.432 - error: javascript.0 script.js.esk_prod.AdapterESKcam: script.js.esk_prod.AdapterESKcam:10 2018-12-24 13:59:11.432 - error: javascript.0 request(ESKcam1URL).pipe(fs.createWriteStream(ESKcam1PIC)); 2018-12-24 13:59:11.432 - error: javascript.0 ^ 2018-12-24 13:59:11.433 - error: javascript.0 TypeError: fs.createWriteStream is not a function 2018-12-24 13:59:11.433 - error: javascript.0 at AdapterESKcam (script.js.esk_prod.AdapterESKcam:10:33) 2018-12-24 13:59:11.433 - error: javascript.0 at script.js.esk_prod.AdapterESKcam:13:1 2018-12-24 13:59:11.433 - error: javascript.0 at ContextifyScript.Script.runInContext (vm.js:59:29)
Ist auch ein Issue im Github (https://github.com/ioBroker/ioBroker.ja … issues/243), aber ich denke, das hängt eher wirklich mit dem Update zusammen.
Hat irgendwer eine Idee?
Gruß, Ralf
-
Ist auch ein Issue im Github (https://github.com/ioBroker/ioBroker.ja … issues/243), aber ich denke, das hängt eher wirklich mit dem Update zusammen.
Hat irgendwer eine Idee?
Gruß, Ralf `
Jup, dir fehlt das Modul fs…
Also beim JavaScript adapter halt fs als zusätzliches Modul eintragen
Sent from my iPhone using Tapatalk
-
Ist auch ein Issue im Github (https://github.com/ioBroker/ioBroker.ja … issues/243), aber ich denke, das hängt eher wirklich mit dem Update zusammen.
Hat irgendwer eine Idee?
Gruß, Ralf `
Jup, dir fehlt das Modul fs…
Also beim JavaScript adapter halt fs als zusätzliches Modul eintragen `
War es vor dem Update doch auch nicht ?!
Habe es versucht, aber keine Besserung:
~~![](</s><URL url=)https://i.imgur.com/ca0EJeF.png" />
Gruß, Ralf~~
-
OK, hab's selbst gefunden: Scheinbar ist die Syntax mit "createWriteStream" nicht mehr gültig.
Habe die entsprechenden Blöcke jetzt geändert:
const fs = require('fs'); const request = require('request'); const ESKcam1URL = 'http://x.x.x.x/web/tmpfs/snap.jpg&-usr=xxx&-pwd=xxx'; const ESKcam1PIC = 'iobroker-data/files/icons-esk/ESKcam.jpg'; function AdapterESKcam() { request.get({url: ESKcam1URL, encoding: "binary"},function(error,response,body){ fs.writeFile(ESKcam1PIC,body,"binary",function(err){ if (err) log('Fehler beim speichern: ' + err, 'warn'); }); }) }
Gruß, Ralf
-
Ich habe iobroker mit dem Adapter iot (weil ich die Linzenz gekauft habe) auf einem Raspi 2 B+ laufen.
Anhand der Anleitung https://buanet.de/2017/09/iobroker-unte … tation/4/# habe ich versucht, iobroker im Container meines NAS von Synology zu installieren.
Kann es sein, dass auf diesem Wege nicht iot genutzt wird, sondern der Adapter "cloud" und dass iot nicht manuell nachinstalliert werden kann?
So sieht das jetzt aus: s. Anhänge
Nebenbei gefragt: Im Container wird mir bei obroker ein freier Speicher von 3 % angezeigt, ohne dass weitere Adapter installiert sind. Erhöht sich der zur Verfügung stehende Speicher automatisch?
Fehlt noch etwas, um mir einen Tipp geben zu können?
15493_iobroker_instanzen_docker.jpg
15493_iobroker_adapter_docker_.jpg
15493_iobroker_docker_container.jpg -
In Deinem zweiten Bild sind doch Adapter zu sehen, auch iot ist zu sehen, einfach rechts auf das + klicken und eine Instanz installieren.
Vielleicht habe ich aber auch Deine Frage falsch verstanden…?
![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201812 ... e2b06f.jpg">https://uploads.tapatalk-cdn.com/20181229/e5c487af4097f7581607803fc4e2b06f.jpg</link_text>" /> -
Ich sehe aber nicht den iot-Adapter. Zumindest heißt der nicht so wie auf dem Raspberry (iot.0).
Es gibt ein iot assistents, der Alexa mit cloud verbindet. Aber das gilt ja nicht mehr, wenn man die Lizenz gekauft hat.
Dass Alexa 2.0 gelb ist, ist neu.
15493_iobroker_raspi.jpg -
Heißt bei mir auch so.
Es gibt Beides. Es gibt iot und es gibt cloud.
Iot ist für Alexa und Cloud für den Fernzugriff.
Je nach dem was Du gekauft hast und verwenden willst kannst Du dann installieren.
Ich nutze eine Cloud Instanz für Fernzugriff (cloud pro)
Die zweite Cloud Instanz (Cloud Free-Account meiner Frau)
Iot Instanz für Alexa.
Skill habe ich nur iot installiert.
Alexa2 Adapter hat damit gar nichts zu tun.
Beim Alexa2 Adapter hast Du auch 2 Instanzen ?
Schau ins Log, ob Du vom Alexa2 Adapter eine ip Adresse mit : port findest. Die gibst Du in den Browser ein, dann öffnet sich Dein Amazon Account mit der Anmeldemaske. Dann anmelden, dann sollte der Cookie erneuert sein.
![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201812 ... e0dde3.jpg">https://uploads.tapatalk-cdn.com/20181229/fdda625f4002599f09685061f5e0dde3.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201812 ... 9c90ac.jpg">https://uploads.tapatalk-cdn.com/20181229/3dbd90168d1dd2854fa0368ab29c90ac.jpg</link_text>" />~~~~