Fhem Installation in einem Docker Container auf Unraid

Begonnen von moonsorrox, 10 Oktober 2020, 13:47:11

Vorheriges Thema - Nächstes Thema

moonsorrox

ich habe da mal eine generelle Frage.. weil ich etwas nicht verstehe.
Ich lese sehr oft das sich ein Docker Container, komplett erneuert/zurück setzt oder wie das auch immer genannt wird.

Also ich fahre den Server herunter oder ich starte den Fhem Container neu... gehe ich dann auf die IP vom Fhem Server ist ja alles so wie es war, obwohl ich entweder den Server neu gestartet habe oder auch fhem neu gestartet.

Gestern habe ich dann mal folgendes gemacht und die erweiterte Ansicht des Container angeschaut, dies kann ich machen auf meinem Unraid Server und ich habe gesehen da ich ja 4 CPU Kerne habe das dort keine CPU aktiviert war, dann habe ich noch eine Beschreibung hinzugefügt, dann kann ich dieses bestätigen und gut ist es.
Auf einmal war der Container Fhem nicht mehr erreichbar.. weiß nicht warum, aber evtl. hat er eine andere IP bekommen keine Ahnung.?

Nun gut dachte alles nicht so schlimm, den Server neu gestartet und meine gesicherte Fhem Konfig wieder zurück gespielt (kein Backup, dazu gleich mehr)
Aber Fhem startet immer mit dem default Skin und alles von mir war weg...
Jetzt habe ich zum Glück vorher komplett gesichert, soll heißen den gesamten Ordner kopiert.

Auf meine Unraid Server liegt Fhem hier:
/var/lib/docker/volumes/a87a4a0bb7e94d03c19804646b7c15d6126dc81943fe7e5c27616d362c5313a1/_data

hier kommt dann die bekannte Ordner Struktur von fhem

zum Backup welches so erstellt werden soll und as funktioniert auch nach wie vor....

backup in der Befehlszeile von Fhem eingeben und das backup startet und wird im Ordner backup abgelegt, soweit alles gut
Nun wird das eigentliche Backup widerhergestellt.
Dazu muss zuerst das laufende FHEM beendet werden mit.
#
invoke-rc.d fhem stop - das funktioniert schon mal nicht auf meine Unraid Server


Jetzt kann das Backup entpackt werden.
#
sudo tar -xvzf /opt/fhem/backup/FHEM-20160229_121624.tar.gz -C /opt/fhem/
tar -xvzf /opt/fhem/backup/FHEM-20190917_181226.tar.gz -C /opt/fhem/


Alle Verzeichnisse und Dateien im Backup werden nun automatisch in das entsprechende Verzeichnis entpackt.
Nach dem dies erfolgreich abgeschlossen wurde kann FHEM wieder gestartet werden.
#
sudo invoke-rc.d fhem start

das funktioniert so in einem Docker Container nicht...! zumindest nicht auf dem Unraid Server

weiter gehts mit meinem fhem auf dem Unraid Server.
Ich habe also fhem komplett gelöscht und wieder nach dem Beispiel hier aus dem Forum neu installiert, dass fhem ist übrigens nach dem installieren noch nicht bereit sondern muss damit es unter den CDocker COntainern zu sehen ist erst einmal gestartet werden, was ich so mache
docker run -d --name fhem -p 8083:8083 fhem/fhem

dann wird der Docker Fhem Container sichtbar auf der Unraid Oberfläche.

Dann habe ich meine vorher gesicherte Fhem Instanz in das neue Verzeichnis kopiert mit WinSCP... natürlich hat mein fhem nun eine andere Verzeichnis Kennung bekommen - ich bezeichne es mal so, dieser Ordner
a87a4a0bb7e94d03c19804646b7c15d6126dc81943fe7e5c27616d362c5313a1
hatte vorher eben eine komplett andere Bezeichnung.

Nach dem zurück kopieren war alles wieder genau so wie ich es mit all meinen Einstellungen und Devices erstellt hatte.
(ich war froh das ich das so wieder hinbekommen habe)
Bin ich doch noch ein absoluter Docker Anfänger, da ich dazu eben durch Unraid gekomme bin
Noch weiß ich nicht ob diese Docker Geschichte mal mein Produktiv System beherbergen soll.... da ich immer noch nicht richtig verstehe, wann ein Container komplett wieder auf Anfang gestellt wird, denn ein Server starten ist ja so zu sehen.

Evtl. hilft dieses hier anderen die sich evtl. an einem Unraid Server versuchen, weil der Server echt gut zu administirieren ist und eben auch Docker und VMs mitbringt...
OK der Hinweis mit der Frage ist oben wohl nicht so ganz rüber gekommen...

Die Frage ist warum bin ich nicht mehr auf den Fhem Server gekommen und warum hat dieser sich beendet und war wieder auf default Einstellung.?
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

kadettilac89

Zitat von: moonsorrox am 10 Oktober 2020, 13:47:11
ich habe da mal eine generelle Frage.. weil ich etwas nicht verstehe.

Du erzählst lange was du gemacht hast. Was ist nun die Frage?

moonsorrox

Zitat von: kadettilac89 am 10 Oktober 2020, 14:07:24
Du erzählst lange was du gemacht hast. Was ist nun die Frage?
;) hast recht habe ich jetzt mal unten hinzugefügt..!!
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

kadettilac89

#3
In Docker hast du 3 Teile
- Config, z. B. wie die Information zu Volume  ---  mounte /opt/fhem im Docker auf Verzeichnis xxx/fhem auf dem Docker-Host
- Image und andere temporäre Dateien die zum Image gehören
- statische Dateien, in deinem Fall die Fhem Config und alles was sonst in /opt/fhem liegen würde

Beim neu erstellen deines Images wurde hier der statische Ordner woanders erstellt als beim ersten mal. Wie das in deiner Umgebung richtig ist musst du mal rausfinden. Du musst dafür sorgen, dass dein Volume (statischer Ordner fhem) immer am selben Ort erstellt wird. Z. B. /docker/docker_files/fhem ...

Sinn uns Zweck des Volumes (statischer Ordner) ist genau was du willst, beim neu erzeugen oder ändern des Images bleiben die statischen Dateien erhalten. Wie gesagt, musst du in Unraid-Doku suchen was hier das richtige Vorgehen ist.

Hast du eine Oberfläche, wo du die Volumes anlegen / zuweisen kannst? Hast du überhaupt Volumes für fhem angelegt, sieht nämlich aus als würdest du nur die Files im Image (temp. Files) sichern und bearbeiten.

Du schreibst dass dein fhem auf irgend welchen generischen Pfaden liegt, ich denke nicht, dass es so gewollt und vorgesehen ist.

Edit: schau dir mal die Unraid-Doku dazu an .... https://wiki.unraid.net/UnRAID_6/Docker_Management#Volume_Mappings

moonsorrox

Zitat von: kadettilac89 am 10 Oktober 2020, 15:50:49
Beim neu erstellen deines Images wurde hier der statische Ordner woanders erstellt als beim ersten mal. Wie das in deiner Umgebung richtig ist musst du mal rausfinden. Du musst dafür sorgen, dass dein Volume (statischer Ordner fhem) immer am selben Ort erstellt wird. Z. B. /docker/docker_files/fhem ...
Ok ,dass habe ich schon gemerkt und auch mit WinSCP heraus gefunden, denn die anderen Docker Container liegen ganz woanders. Da habe ich eine Zeit verbracht mit um dieses zu finden.

Zitat von: kadettilac89 am 10 Oktober 2020, 15:50:49
Sinn uns Zweck des Volumes (statischer Ordner) ist genau was du willst, beim neu erzeugen oder ändern des Images bleiben die statischen Dateien erhalten. Wie gesagt, musst du in Unraid-Doku suchen was hier das richtige Vorgehen ist.
ja genau, dass wäre mein bestreben und werde ich mal in der Doku versuchen raus zu finden, schön wäre es wenn jemand sich damit schon auskennt und das noch besser erklären kann.

Zitat von: kadettilac89 am 10 Oktober 2020, 15:50:49
Hast du eine Oberfläche, wo du die Volumes anlegen / zuweisen kannst? Hast du überhaupt Volumes für fhem angelegt, sieht nämlich aus als würdest du nur die Files im Image (temp. Files) sichern und bearbeiten.
nein ich habe da kein Volume für angelegt. Ich habe fhem mit Hilfe des Forums hier über die Konsole installiert, weil es in den offiziellen Apps kein Fhem gibt, denn diese Apps werden auf dem Unraid Server werden (fast) alle an zwei Stellen zu finden sein, hier am Beispiel Programm "portainer" oder "plex"
1. findet man sie unter
/mnt/user/appdata/portainer
/mnt/user/appdate/binhex-plex


2. unter
/mnt/disk1/appdata/portainer
/mnt/disk1/appdata/binhex-plex


und das wäre der Pfad für fhem
/var/lib/docker/volumes/a87a4a0bb7e94d03c19804646b7c15d6126dc81943fe7e5c27616d362c5313a1/_data
also komplett woanders.
ich muss mal schauen ob ich das irgendwie hinbekomme mit Hilfe deines Links für den Unraid Server.
Es sind ja meine Festplatten die Disk1 habe ich für all die Programme und Container gedacht und die Disk2 da ist meine komplette Musiksammlung drauf.

Zitat von: kadettilac89 am 10 Oktober 2020, 15:50:49
Du schreibst dass dein fhem auf irgend welchen generischen Pfaden liegt, ich denke nicht, dass es so gewollt und vorgesehen ist.
nein leider nicht  :-\

Das Unraid Wiki habe ich schon mal gesehen, aber bisher noch nicht weiter studiert, weil ich dachte das es ersteinmal ein Docker Ding ist.
Aber ich schaue mir das mal an.

Beide Dinge sind für mich noch recht neu also Unraid und auch Docker, deshalb muss ich da mal lesen wie ich das Fhem an die Stellen bekomme wo die anderen Docker Container sich befinden, wäre ganz schön wenn ich hier etwas Unterstützung bekomme, was du ja nun schon ganz gut getan hast.  :) ;)
Es bleibt mir ja nur die Konsole zum installieren.

Ich sage erst einmal Danke, aber behalte mich mal ein wenig im Auge mit meinen weiteren Fragen  ;)

Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

guhu

Das Thema hatten wir doch schon mal.

Vergiss die internen Docker-Daten. Kümmer dich nicht drum. Das ist wie der Start eines Betriebssystems von CD-ROM - die Daten haben keine Persitenz (dauerende Speicherung).

Du musst ein Volume im Docker Container mappen. Du mappst den Ordner /opt/fhem innerhalb des Docker Containers auf einen Bereich auf Deinem NAS, wo du die Daten gespeichert haben willst.
Dann bleiben die Daten erhalten.
Bei mir ist bspw. gemappt: /opt/fhem auf /volume1/usbshare/docker/fhem/opt  (hab ein Synology-NAS).
Wenn Du das nicht tust, geht alles wieder auf Anfang nach Neustart.
FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS

kadettilac89

Zitat von: moonsorrox am 10 Oktober 2020, 16:55:53
nein ich habe da kein Volume für angelegt. Ich habe fhem mit Hilfe des Forums hier über die Konsole installiert, weil es in den offiziellen Apps kein Fhem gibt, denn diese Apps werden auf dem Unraid Server werden (fast) alle an zwei Stellen zu finden sein, hier am Beispiel Programm "portainer" oder "plex"
Zeige mal die Konfiguration oder Befehle mit denen du den Container angelegt hast. Irgend wo musst du Volume eintragen.

kadettilac89

ich habe mir mal unraid installiert, weils mich sowieso mal interessiert hat ... warum machst du dir das leben so schwer?

Nimm die Oberfläche, lade fhem runter, mache das volume,ports ... rein und es läuft ...

Verstehe jetzt nicht woran es scheitert


moonsorrox

Das habe ich versucht... ist aber schon mindestens ein Monat her und es hat irgendwie nicht funktioniert.
Ich schaue mir das nachher nochmal an.
Wo hast du das fhem nach dem runterladen denn hin gelegt direkt auf die Unraid Festplatte.?

Mein erster Versuch damals war einen Docker Container zu erstellen das hat aber nicht funktioniert, weiß es jetzt nicht mehr genau was ich noch probiert hatte. Wenn ich nachher am PC bin werde ich das nochmal probieren... habe jetzt nur mein Tablett hier...
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

kadettilac89

ich habe nur eine festplatte drin, in den docker settings kannst du den pfad der images angeben. fhem statisches volume kannst du  frei wählen, wenn gewünscht auf eine andere platte ... beim runtrladen an sich gibst du erstmal keinen eigenen pfad an.

moonsorrox

nach deinem ersten Bild bist du unter Docker in dem Fenster "Add Container" der sieht bei mir ganz anders aus und muss voll befüllt werden bevor ich Applyen kann und genau das hat bei mir nicht funktioniert.
Es fehlt auch der Punkt "opt" der kommt auch nicht wenn ich unten weiter aufklappe...
Das war ja mein erster Ansatz und es passiert nichts.
Wenn du das bei dir so eingibst installiert er sofort fhem..?

So ich habe das jetzt mal gemacht und er installiert das Fhem wieder genau dahin wo ich es nicht haben will nämlich nach
/var/lib/docker/volumes/xxxxxxhier irgendeine lange Zahlxxxxx/_data
das ist genau der Punkt da ich es nirgends angeben kann.

Wenn ich die erweiterte Ansich einschalte sieht es so aus wie auch dem 2. Screenshot, da habe ich nur den Imagepfad eingegebn, weil die anderen Docker Favicons auch dort liegen.
Aber den Installationspfad finde ich nirgends.
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

moonsorrox

#11
So ich habe jetzt nochmal unter den erweiterten Pfaden /mnt/user/appdata eingegeben und er hat mir gesagt fhem wird entfernt und wurde neu installiert, aber es ist nichts unterm dem angegebenen Pfad passiert.
Er hat einen weiteren genau da installiert wie vorher, nur mit einer weiteren anderen Zahl  :-\
Ich verzweifel noch.... :-\

Irgend etwas ist da bei mir was verbogen, dass er den fhem container nicht dahin installiert wo er die anderen installiert.
Ich habe noch ein paar mal mit den Pfaden etwas geändert, aber der fhem Container landet nicht bei meiner Pfadangabe /mnt/user/appdata/fhem oder auch unter /mnt/disk1/appdata/fhem
Alle anderen inst. Apps sind einmal unter /mnt/user/appdata und /mnt/disk1/appdata jeweils mit ihren Namen zu finden.
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

kadettilac89

#12
und ich bleib dabei, du machst dir das leben unnötig schwer. du scheiterst an den docker basics

ich habe mal die screenshots von mir gemacht. s. word doc ... es sind 5 klicks und der docker container ist online.

mach erstmal nur eine ganz rudimentäre config. nix mit custom bridge oder was du sonst noch alles treibst.

docker image fhem/fhem
volume von container /opt/fhem nach xxx irgendwohin auf deinem host ... frei konfigurierbar
port 8083 auf 8083

und schon ist fhem erreichbar.

deine ordner /mnt/disk1xxxx und /mnt/userxxxx zeigen auf das selbe verzeichnis (genau genommen macht unraid eine kopie). lege in einem mal eine datei an, und du siehst die auch im anderen ordner. muss dich aber auch erstmal nicht stören .... wenn du das genauer wissen willst, kläre das im unraid forum.

default app storage ist in den docker settings ... wenn du ein problem mit der location hast ... dann verschiebe es halt wo du es hinhaben willst. aber "you need to walk before you run" ...

das einzige was du nun sichern musst, ist der /mnt/user/xxxx/fhem ordner den du angelegt hast.

wenn du den container dann laufen hast, und weißt wie du sicherst, wiederherstellst (am besten testen) ... dann, und erst dann kannst du dich mit weiteren einstellungen wie custom bridge, zusätzlichen ports, volumes, devices ... spielen.

kadettilac89

Zitat von: moonsorrox am 10 Oktober 2020, 23:52:56
So ich habe das jetzt mal gemacht und er installiert das Fhem wieder genau dahin wo ich es nicht haben will nämlich nach
/var/lib/docker/volumes/xxxxxxhier irgendeine lange Zahlxxxxx/_data
das ist genau der Punkt da ich es nirgends angeben kann.

auch hier, lass die finger von dem ordner. das sind die temporären docker files. da hat der endanwender nichts verloren. das sind linux verzeichnisse ...

https://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard#/var-Verzeichnisstruktur

guhu

Zitat von: kadettilac89 am 11 Oktober 2020, 09:50:15
und ich bleib dabei, du machst dir das leben unnötig schwer. du scheiterst an den docker basics


Genau so ist es. Wenn man sich nicht mit den elementaren Docker basics vertraut gemacht hat, dann wird das nichts.
FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS

moonsorrox

#15
Zitat von: kadettilac89 am 11 Oktober 2020, 09:50:15
und ich bleib dabei, du machst dir das leben unnötig schwer. du scheiterst an den docker basics

ich habe mal die screenshots von mir gemacht. s. word doc ... es sind 5 klicks und der docker container ist online.

mach erstmal nur eine ganz rudimentäre config. nix mit custom bridge oder was du sonst noch alles treibst.

docker image fhem/fhem
volume von container /opt/fhem nach xxx irgendwohin auf deinem host ... frei konfigurierbar
port 8083 auf 8083

und schon ist fhem erreichbar.

deine ordner /mnt/disk1xxxx und /mnt/userxxxx zeigen auf das selbe verzeichnis (genau genommen macht unraid eine kopie). lege in einem mal eine datei an, und du siehst die auch im anderen ordner. muss dich aber auch erstmal nicht stören .... wenn du das genauer wissen willst, kläre das im unraid forum.

default app storage ist in den docker settings ... wenn du ein problem mit der location hast ... dann verschiebe es halt wo du es hinhaben willst. aber "you need to walk before you run" ...

das einzige was du nun sichern musst, ist der /mnt/user/xxxx/fhem ordner den du angelegt hast.

wenn du den container dann laufen hast, und weißt wie du sicherst, wiederherstellst (am besten testen) ... dann, und erst dann kannst du dich mit weiteren einstellungen wie custom bridge, zusätzlichen ports, volumes, devices ... spielen.

Hallo und vielen Dank für deine tolle Unterstützung und die PDF...
Um es kurz zu machen, jetzt läuft fhem...!! :D ;)

Zur Erklärung von mir ich habe gestern bis in die Nacht noch einige Tests gemacht u.a. war ein Versuch  ;) dabei der funktioniert hat...
Bis eben hatte ich kein Internetzugang... und nun habe ich das fhem von gestern noch mal gelöscht und nach deinen Vorgaben noch mal installiert mit einer Static IP.. das hat nun super funktioniert.
Zu dem von mir gestern erwähnten Verzeichnis (/var/lib/docker/volumes/a87a4a0bb7e94d03c19804646b7c15d6126dc81943fe7e5c27616d362c5313a1/_data) wäre zu sagen... dort erscheint heute gar nichts mehr, also war wohl an meinen kläglichen Versuchen einiges falsch. :-\
Jetzt befindet sich fhem auch in /mnt/user/appdate/fhem, also alles gut  ;)

Ich werde das jetzt nochmal verinnerlichen, was ich gestern falsch gemacht habe.  :-\
zur Ansicht nochmal zwei Screenshots  ;)
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM