Openhab Einstellungen aus Docker sichern

Status
Für weitere Antworten geschlossen.

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
uid=1029(apachelance) gid=100(users) groups=100(users),101(administrators)
drwxrwxrwx+ 3 apachelance users 4096 Feb 5 12:13 userdata
Wenn Du jetzt die USER_ID 1029 eingetragen ist, dann dürfte es prinzipiel keine Permission probleme geben...

Wenn da nicht noch folgendes wäre::
Die Geschichte mit der USER_ID ist fehlerhaft umgesetzt im Container!
Nur der Benutzer openhab mit der userId 9001 hat die Berechtigung um auf die Datei /openhab/runtime/system/org/ops4j/pax/web/pax-web-api/4.3.0/pax-web-api-4.3.0.jar
zuzugreifen.

Ich wette das der Container ohne Volumes und der USER_ID 1029 auch nicht läuft!


Damit ist Variante 1 wohl die "schmerzfreie Variante".

Das offizielle OpenHAB Image ist nicht gut gemacht :/
 

apachelance

Benutzer
Mitglied seit
21. Sep 2013
Beiträge
299
Punkte für Reaktionen
0
Punkte
22
Hmm, permission ändern klappt nicht (Verzeichnissel liegen bei mir auf volume1):

apachelance@DiskStation:~$ chown 9001:100 -R /volume1/docker/openhab
chown: changing ownership of ÔÇÿ/volume1/docker/openhab/userdata/etcÔÇÖ: Operation not permitted
chown: changing ownership of ÔÇÿ/volume1/docker/openhab/userdataÔÇÖ: Operation not permitted
chown: changing ownership of ÔÇÿ/volume1/docker/openhab/confÔÇÖ: Operation not permitted
chown: changing ownership of ÔÇÿ/volume1/docker/openhabÔÇÖ: Operation not permitted
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Läuft jetzt bei mir. Du kannst die Verzeichnisse jetzt aber nur als root backupen.
Insgesammt unsauber gelöst von openhab!

Die sollten sich mal ein Beispiel an den vorbildlichen Linuxserver.io docker images nehmen!
Da erlebt man so einen mist nicht...
 

frogtwist

Benutzer
Mitglied seit
08. Nov 2014
Beiträge
395
Punkte für Reaktionen
3
Punkte
18
Ich hatte openHab auch mal im Container getestet. Hat mich nicht wirklich überzeugt. Habe dann das spk für openHab genommen und das läuft rund.
 

apachelance

Benutzer
Mitglied seit
21. Sep 2013
Beiträge
299
Punkte für Reaktionen
0
Punkte
22
Ich gebs gleich auf. Läuft immernoch nicht. Hab die Rechte geändert:

apachelance@DiskStation:~$ ls -l /volume1/docker/openhab
drwxrwxrwx+ 2 9001 users 4096 Feb 5 13:53 conf
drwxrwxrwx+ 4 9001 users 4096 Feb 5 14:22 userdata

Er meldet dann:
karaf: KARAF_ETC is not valid: /openhab/userdata/etc

Wenn ich das /etc Verzeichnis dann manuell anlege, legt er zumindest schonmal ein log-Verzeichnis bei userdata an, aber es kommt stattdessen:

Launching the openHAB runtime...

WARN: file:/openhab/userdata/etc/config.properties is not found, so not loaded

null

WARN: file:/openhab/userdata/etc/config.properties is not found, so not loaded

Error occurred shutting down framework: java.lang.NumberFormatException: null

java.lang.NumberFormatException: null
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Ich hatte doch schon in meinem erstem Post geschrieben, dass man die Konfiguration kopieren muss!

Ohne auf die Shell zu gehen, wirst Du hier nicht weiterkommen, da der Container ja gleich wieder gestoppt wird.
Wenn er nicht gestoppt werden würde, dann könntest Du den Kopier befehl auch im Terminal eingeben...

Code:
docker run --rm \
  --user 9001 \
  -v /volume1/docker/openhab/timezone:/etc/timezone \
  -v /volume1/docker/openhab/addons:/openhab/addons \
  -v /volume1/docker/openhab/conf:/openhab/conf \
  -v /volume1/docker/openhab/userdata:/openhab/userdata \
  openhab/openhab:2.0.0-amd64 \
  sh -c 'cp -av /openhab/userdata.dist/* /openhab/userdata/ &&   cp -av /openhab/conf.dist/* /openhab/conf/'
falls er sich beschwert, dass schon ein entsprechender container existiert, musst Du leider deinen existierenden Container löschen.
 
Zuletzt bearbeitet:

apachelance

Benutzer
Mitglied seit
21. Sep 2013
Beiträge
299
Punkte für Reaktionen
0
Punkte
22
Ok, danke für deine Unterstützung. Ich steig hier trotzdem aus. Ist mir zu aufwändig. Zumal ich die Gefahr sehe, dass später ein Update des Containers auch wieder Probleme gibt. Damit als "produktive" Automatisierungslösung nicht wirklich zu gebrauchen.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Kann ich verstehen, da das Image auch echt schlecht gemacht:
- Mann die USER_ID übergeben, aber wenn die etwas anderes als der Default-Wert ist, geht es nicht
- Manuells kopieren der Konfigurationen ist eine unnötige verkomplizierung: die hätten das so umsetzen können, dass nachgesehen wird ob eine bestimmte Datei existiert und wenn nicht dann einfach alles rüberkopieren. Beim nächsten Start wäre dann die bestimmte Datei vorhanden und es müsste nicht erneut kopiert werden.

Hätte man alles in allem besser machen können.
 

apachelance

Benutzer
Mitglied seit
21. Sep 2013
Beiträge
299
Punkte für Reaktionen
0
Punkte
22
Yep. Ich bastel ja ganz gern mal. Aber das hat mit dem intuitiven Docker-Ansatz dann nur noch wenig zu tun.
 

frogtwist

Benutzer
Mitglied seit
08. Nov 2014
Beiträge
395
Punkte für Reaktionen
3
Punkte
18
openhab.jpg

Was spricht dagegen openHab über das Paketzentrum zu installieren?
"http://packages.pcloadletter.co.uk/" zu den Quellen hinzufügen und openHab installieren.
 

iLion

Benutzer
Mitglied seit
07. Okt 2008
Beiträge
355
Punkte für Reaktionen
4
Punkte
18
Aus meiner Sicht, dass das Paket zusätzlich eine Java-Installation benötigt, wie in der Dokumentation dazu beschrieben. Wenn dann mal was mit Support bei Synology notwendig ist, könnte die den Support mit Hinweis auf externe Pakete wieder verweigern. Bei Docker kann das so nicht passieren.
 

frogtwist

Benutzer
Mitglied seit
08. Nov 2014
Beiträge
395
Punkte für Reaktionen
3
Punkte
18
Die Java 8 Version ist direkt von Synology. Oder verstehe ich da was falsch?

java8.JPG
 

iLion

Benutzer
Mitglied seit
07. Okt 2008
Beiträge
355
Punkte für Reaktionen
4
Punkte
18
Ich habe es nicht explizit ausprobiert, beziehe mich aber auf den Teil in der OpenHAB Dokumentation für das Synology Paket:

Prerequisite - Install Java

Current releases of openHAB require Oracle Java due to the generation of certificates based on EC which is not available in free Java implementations. If you see the following error you are likely using OpenJDK: java.security.NoSuchAlgorithmException: EC KeyPairGenerator not available

The easiest way to install Java is to include the PC-Loadletter Repo. Download Java8 SE (latest ARMv6) (Java Cryptography Extension if required) and put them in the public folder of your NAS. Then start the installation of Java8 SE.
 

frogtwist

Benutzer
Mitglied seit
08. Nov 2014
Beiträge
395
Punkte für Reaktionen
3
Punkte
18
Bei mir läuft es mit der offiziellen Java Version von Synology bisher ohne Probleme.
 

Wurzelseppi

Benutzer
Mitglied seit
01. Dez 2016
Beiträge
81
Punkte für Reaktionen
0
Punkte
6
Hallo zusammen,

mache gerade das selbe auf einer DS916+:

Wie bekomme ich den die Zuweisungen:

-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \

über die Oberfläche hin ?
Ich kann bei den Mounts ja nur Folder aus /volume1 wählen. Auf das Basis System der DS916+ komm ich ja gar nicht :-(
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
TL;DR?

Du bist in der Lage und motiviert Befehle von der Shell aus auszuführen?
Ja - >Lies den Thread einmal komplett, dann soltest Du wissen was zu tun ist.
Nein -> Dieses openHAB Image ist nichts für dich, da ohne Shell die Konfiguration nicht angelegt werden kann.
 

Wurzelseppi

Benutzer
Mitglied seit
01. Dez 2016
Beiträge
81
Punkte für Reaktionen
0
Punkte
6
Wer dumme Fragen stellt, muss wohl mit solchen Antworten rechnen :)
Ja, ich bin durchaus fähig und gewillt Befehle über die Konsole einzugeben. hab mich nur gewundert, warum diese UI im DSM nicht flexibler ist; konnte mir das nicht vorstellen :)

Hab mittlerweile schon sehr viel rum getestet, komme aber irgendwie nicht weiter. Bin jetzt leider nicht am Heimrechner, und kann genaue Wortlaute des Fehlers nennen, aber ich versuchs mal....
Es sieht ja ganz so aus, was auch vielmals diskutiert wird, daß man im Docker leider die User-Id doch nicht per (hab ich hier im Thread wirklich "Umwelt-Variable" gelesen ? ...lol) Environment-Variable (USERID) setzen kann.
Der Weg, über die Konsole per -u {uid} eine uid eines nutzers mitzugeben funktioniert zwar (OH2) fängt auch an zu starten (wenn man die Verzeichnisse richtig reingemounted hat), aber es kommt ziemlich schnell ein neuer Fehler, daß in openhab/runtime/ (denke, das war der Pfad), die instance-pid nicht angelegt werden konnte.

Nachdem ich gestern doch ein bisschen dran gesessen bin, und, wie es leider (bei mir zumindest) immer so läuft, vom Hundertsten ins Tausende gekommen bin, war ich dann frustriert und hab ein Buch gelesen :)

Kennt jemand diesen Fehler, daß die instance pid nicht angelegt werden konnte ?

Merci und Grüße,

Wurzelseppi
 

Wurzelseppi

Benutzer
Mitglied seit
01. Dez 2016
Beiträge
81
Punkte für Reaktionen
0
Punkte
6
Und zu dem OpenHAB Paket über das Paketzentrum ..... leider läuft die neue Version auch nicht so rund bei mir .... hatte bisher die 2.0.0 (Release) Version drauf, und wollte, weil ich beim knx binding ein Problem hatte, testweise auf das neue 2.1.0.002 Paket gehen.
Da werden aber keinerlei Dienste installiert. Das Verzeichnis /var/packages/openHAB2 ist ziemlich spärlich ausgestattet im Vergleich zu dem vorher laufenden System. Wie gesagt, sitze in der Arbeit und kann keine genauen Sachen schildern, aber irgendwie frustriert die ganze Sache gerade ungemein :) ..... Als wenn das OH2 selbst nicht schon genug Komplexität hätte :) .....
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Der Weg, über die Konsole per -u {uid} eine uid eines nutzers mitzugeben funktioniert zwar (OH2) fängt auch an zu starten (wenn man die Verzeichnisse richtig reingemounted hat), aber es kommt ziemlich schnell ein neuer Fehler, daß in openhab/runtime/ (denke, das war der Pfad), die instance-pid nicht angelegt werden konnte.

Das aktuelle Docker-Image hat einen Fehler im Umgang mit USER_ID: diese kann man zwar übergeben, aber mindestens eine der zum Start notwendigen Dateien kann NUR von der Default USER_ID 9001 gelesen werden - solange das nicht behoben ist, kann man die USER_ID Geschichte vergessen.

Das die PID nicht geschrieben werden kann ist eine Warnung und kein Fehler. Die Warnung verhindert aber nicht den Start von OpenHAB.


Hast Du die mit dem ersten Schritt "docker run --rm" die Konfiguration erzeugt/kopiert? Gelegentlich wird der Container nach Beendigung nicht gelöscht, das muss man dann selber machen.
Danach kannst Du im zweiten Schritt den Container über die UI oder Shell anlegen. Bei mir war es wichtig die selbt erzeugte timezone Datei in den Container zu mappen. localtime musste ich nicht mappen.

Zum Paket aus dem Paketzentrum kann ich nichts sagen: ich bin kein Fan davon wenn Pakete das "Ur"-System verdrehen. Docker-Container sind einfach charmanter, weil sie wieder problemlos, rückstandsfrei gelöscht werden können...
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat