Autor Thema: Fhem Docker Image  (Gelesen 8503 mal)

Offline Steffen

  • Sr. Member
  • ****
  • Beiträge: 794
Fhem Docker Image
« am: 10 November 2017, 18:21:49 »
Hallo!

Ich habe mich ein wenig in das Format Docker eingearbeitet und über eine Dockerfile ein Image mit Fhem erstellt und erfolgreich gestartet.
Ich weiß das wenn der Container sich beendet alle einstellungen verschwinden, nun dachte ich wenn man ein  "commit" nach ein einem "detach" ausführt speichert er die Fhem-Config von Fhem auch ins neue Image aber das tut docker leider nicht zumindest nicht mit der fhem-config, ein von mir erstellter Test ordner bleibt bestehen im neuen image.

Wie löst ihr das mit docker? Ich würde wirklich gerne ohne Volumen zu mounten nur mit image/container Arbeiten, gibt es da vielleicht einen Weg?

Mfg Steffen

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #1 am: 10 November 2017, 18:26:31 »
Entweder mit Volumen oder mit "bind" außerhalb ...

Auch wenn ich fhem eher nativ laufen lasse ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Steffen

  • Sr. Member
  • ****
  • Beiträge: 794
Antw:Fhem Docker Image
« Antwort #2 am: 10 November 2017, 19:33:47 »
Ich fand das Thema mit Docker ebend spannender mit unabhängigkeit gegenüber von Host oder Datei Systemen, mit gemounten Volumen ist man ja nun schon wieder deutlich gebundener ans Host System.

Was ich nicht verstehe das ein commit ebend die Test datei behält aber nicht die änderung in der cfg?!?

Mfg Steffen

Offline ThoTo

  • Full Member
  • ***
  • Beiträge: 151
Antw:Fhem Docker Image
« Antwort #3 am: 10 November 2017, 20:02:45 »
Ich empfehle einen Umstieg auf configDB statt fhem.cfg und das DB-File dann vom Host zu mounten.
Die Daten im Container zu halten widerspricht ein wenig der Architektur von Docker.

D.h. du erzeugst das Image mit der aktuellen FHEM-Version, bereitest alles für configDB vor und startest dann einen Container:
Zitat
docker run -d -v /opt/configDB.db:/opt/fhem/configDB.db:rw -p 8083:8083 fhemimage

Dann liegt deine Config (+zB myUtils, gplots etc.) am Host unter /opt/configDB.db und ist vom Container unabhängig, du kannst sie von dort auch wegsichern.

LG Thomas
Intel NUC | Docker | Homematic | Sonoff | Hue

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher."
(Albert Einstein)
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #4 am: 11 November 2017, 13:49:17 »
Also ob Du jetzt die fhem.cfg oder die configDB vom Host holst ... da ist nicht configDB die Lösung, sondern das "Bind" um Host.

Man sollte auch darauf hinweisen, das Änderungen innerhalb vom Docker nicht so performant sind, wie im volumen/bind. Siehe Doku zu Docker

Ich persöhnlich würde übrigens in dem Falle NICHT sqllight, sondern richtig mysql/mariasql in einem 2. Docker verwenden. Das wäre die Idee von Docker mit Microservices,
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline ThoTo

  • Full Member
  • ***
  • Beiträge: 151
Antw:Fhem Docker Image
« Antwort #5 am: 11 November 2017, 16:25:19 »
Zitat
Also ob Du jetzt die fhem.cfg oder die configDB vom Host holst ... da ist nicht configDB die Lösung, sondern das "Bind" um Host.
Das hat ja auch niemand behauptet und wie du sagst es sind zwei Paar Schuhe.
Der Threadersteller wollte Lösungen und eine ist MyUtils, Gplot-Files, fhem.cfg etc. durch configDB abzulösen und dann in den Container zu mounten, das kann auch von Anfängern leicht umgesetzt werden.

Zitat
Man sollte auch darauf hinweisen, das Änderungen innerhalb vom Docker nicht so performant sind, wie im volumen/bind. Siehe Doku zu Docker
Ich persöhnlich würde übrigens in dem Falle NICHT sqllight, sondern richtig mysql/mariasql in einem 2. Docker verwenden. Das wäre die Idee von Docker mit Microservices,
Da hast du natürlich recht und gerade auch darum ist es ja wichtig die Dateien aus dem Container rauszubekommen.
Ich sehe es immer wieder dass Container mit VMs verwechselt werden und die Daten im Container bleiben, was absolut falsch ist.
Persönlich nutze ich für die ConfigDB SQLite, weil es absolut ausreichend ist, dem Zweck Genüge tut und in so gut wie allen Fällen auch schneller als Mysql/MariaDB ist  ;)
Ist FHEM mit DbLog im Spiel, siehe die Sache natürlich anders aus und Mysql/MariaDB sind wie ich finde notwendig.
Intel NUC | Docker | Homematic | Sonoff | Hue

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher."
(Albert Einstein)

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20868
Antw:Fhem Docker Image
« Antwort #6 am: 11 November 2017, 16:42:26 »
Was passiert, wenn man im FHEM@Docker ein FHEM-update ausfuehrt?

Offline ThoTo

  • Full Member
  • ***
  • Beiträge: 151
Antw:Fhem Docker Image
« Antwort #7 am: 11 November 2017, 17:15:36 »
Was passiert, wenn man im FHEM@Docker ein FHEM-update ausfuehrt?

Dann ist FHEM im Container up to date und solange dein Container läuft ist das alles kein Problem.

Ziel von Docker ist aber Daten und Applikationen zu trennen.
Darum soll es möglich sein problemlos einen neuen Container aus einem fhem-Image zu erzeugen, weil die Daten liegen ja am Host oder in einem Volume und werden nur in den Container gemountet.

D.h. du solltest genaugenommen das Image updaten und nicht den Container.
Intel NUC | Docker | Homematic | Sonoff | Hue

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher."
(Albert Einstein)

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #8 am: 11 November 2017, 20:34:37 »
Ansonsten legst Du den fhem-Ordner eben als "bind" extern an. Dann ist auch ein update persistend.

@ThoTo
Zitat
...eine ist MyUtils, Gplot-Files, fhem.cfg etc. durch configDB abzulösen und dann in den Container zu mounten, das kann auch von Anfängern leicht umgesetzt werden.
Bezüglich "für Anfänger" sind wir verschiedener Meinung.

Aber das guten bei Unix (und FHEM), viele Wege führen zum Ziel mit jeweils vor/nachteilen ;o)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline cfranz

  • New Member
  • *
  • Beiträge: 22
    • carsten-franz.eu
Antw:Fhem Docker Image
« Antwort #9 am: 11 November 2017, 23:08:38 »
Ansonsten legst Du den fhem-Ordner eben als "bind" extern an. Dann ist auch ein update persistend.
Und für was sollte er dann Docker nutzen? Das macht irgendwie wenig Sinn. Das Konzept ist ja gerade, dass man die Daten außerhalb des Containers speichert. Wenn ich die Software aktualisieren möchte, dann baue ich ein neues Image.

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #10 am: 12 November 2017, 09:54:32 »
Das Du das Programm, bzw. deren Abhängigkeiten "kapselst" ... erst in Kombination mit "Docker Swarm", Kupernetis u.Ä. mach eine Komplette Kapselung mit "auch "Programm innerhalb des Containers" einen Sinn. Da machst Du aber auch update außerhalb von FHEM.

Warum soll man eigentlich immer wieder einen neuen Container bauen sollen?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Steffen

  • Sr. Member
  • ****
  • Beiträge: 794
Antw:Fhem Docker Image
« Antwort #11 am: 12 November 2017, 11:52:31 »
Hallo!

Danke für diese Informationen, ich muss mich da ebend wohl noch weiter einarbeiten.

Ich habe schon versucht mein selbst erstelltes FhemImage über docker run -d -v /opt/fhem:/opt/fhem xxxx zu mounten und dachte das es so eine Art Spiegelung wäre aber
er stellt das Host Verzeichnis dann direkt in den DC(dockercontainer) ab, aber dann ist ja alles von dem vorher installierten Fhem weg, wie könnte
man es denn lösen das er die Daten vom DC ins Host Verzeichnis übernimmt?

Mfg Steffen

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #12 am: 12 November 2017, 17:51:39 »
In dem Du vorher ein Backup machst ...

Wenn Du ein Verzeichnis direkt einmountest, WILLST Du, das es nicht gespiegelt, sondern direkt verändert wird ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Steffen

  • Sr. Member
  • ****
  • Beiträge: 794
Antw:Fhem Docker Image
« Antwort #13 am: 12 November 2017, 19:15:08 »
Hallo,

Ist es möglich in einer Dockerfile schon den befehl zum Volumen Mounten zu geben?!?

Mfg Steffen

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #14 am: 13 November 2017, 08:13:16 »
Stichwort: docker-compose
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Steffen

  • Sr. Member
  • ****
  • Beiträge: 794
Antw:Fhem Docker Image
« Antwort #15 am: 14 November 2017, 08:08:32 »
Stichwort: docker-compose

Ok habe ich jetzt mal versucht aber bekomme eine Fehler meldung und kann vielleicht sagen woran es liegt?!?

version: '2'

services: fhem: expose: - "8083" - "7072" ports: - "8083:8083" - "7072:7072" image: steffen/fhem2 privileged: true

root@debian:/Docker_Test# docker-compose up
Recreating 98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_dockertest_fhem_1 ... Recreating 98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_dockertest_fhem_1 ... error

ERROR: for 98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_98f73ae03f4c_dockertest_fhem_1 No such image: sha256:ca2cbdc721a44e301c78be6ec72deead353296e47c6526848d873a9df7efd943

ERROR: for fhem No such image: sha256:ca2cbdc721a44e301c78be6ec72deead353296e47c6526848d873a9df7efd943 ERROR: Encountered errors while bringing up the project.

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #16 am: 14 November 2017, 08:31:29 »
Gib uns mal das Komplette "compose-file" ....

P.S. es gibt schon dieverse FHEM-Docker-Images bei auf dockerhub
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Steffen

  • Sr. Member
  • ****
  • Beiträge: 794
Antw:Fhem Docker Image
« Antwort #17 am: 14 November 2017, 09:20:39 »
Hallo!

Mehr hatte ich in der "compose-file" noch gar nicht eingegeben, dachte für ein erstes einfaches starten würde es reichen?!

Das image steffen/fhem2 hatte ich selber erstellt über eine Dockerfile und wollte diese nun über compose starten.

Kann man den über compose keine eigenen images Starten???

Mfg Steffen

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 1763
Antw:Fhem Docker Image
« Antwort #18 am: 14 November 2017, 09:22:11 »
Das YML-File ist schon wichtig.
Wenn du von "Image steffen/fhem2" sprichst, dann klingt das eher nach einem DockerHub-Image.
Ich vermute aber mal, dass du eher "build" meinst und nicht "image". Du hast doch sicherlich ein Image-Unterverzeichnis mit einem Dockerfile, oder?

Offline Steffen

  • Sr. Member
  • ****
  • Beiträge: 794
Antw:Fhem Docker Image
« Antwort #19 am: 14 November 2017, 09:29:48 »
Hallo!

Nein es ist kein Docker-Hub image, hatte es selber über Dockerfile erstellt und ist unter eingabe "docker images" auch sichtbar mit id und Name "steffen/fhem2".

Im compose file, wird doch durch "build" erst das image gebaut wie ich es ja schon gemacht habe oder verstehe ich das Falsch???

Mfg Steffen

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 1763
Antw:Fhem Docker Image
« Antwort #20 am: 14 November 2017, 09:49:40 »
Sorry, zeige uns doch bitte die Dateien. Ansonsten macht das Raten hier keinen Sinn.

Offline Axxl

  • New Member
  • *
  • Beiträge: 14
Antw:Fhem Docker Image
« Antwort #21 am: 14 November 2017, 17:12:03 »
Ich habe schon versucht mein selbst erstelltes FhemImage über docker run -d -v /opt/fhem:/opt/fhem xxxx zu mounten und dachte das es so eine Art Spiegelung wäre aber
er stellt das Host Verzeichnis dann direkt in den DC(dockercontainer) ab, aber dann ist ja alles von dem vorher installierten Fhem weg, wie könnte
man es denn lösen das er die Daten vom DC ins Host Verzeichnis übernimmt?

Hallo Steffen,

ich bin auch letztens in ein Docker Container mit FHEM ungezogen. Stand vor dem gleichen Problem.
Ich binde das komplette opt/fhem verzeichnis. Habe eigentlich so im Betrieb keine Probeme.

Nun zu Deinem Problem mit dem initialen bind. Starte doch den Container mit einem bind auf ein temp verzeichnis.
Also z.b. : docker run -d -v /tmp/fhem:/tmp/fhem

Dann gehst du mal ins laufenden docker fhem container rein:
Bsp:
docker exec -it fhem /bin/bash

Dann kopierst Du das komplette /opt/fhem verzeichnis nach /tmp/fhem  (cp -r /opt/fhem /tmp/fhem)
Und wieder raus aus dem Container mit "exit"

Im Host dann einfach die Daten aus /tmp/fhem nach /opt/fhem kopieren
Und dann in Zukunft wieder den containter mit deinem "docker run -d -v /opt/fhem:/opt/fhem" starten.

Et Voila ..

Ok alles etwas hemdsärmelig .. aber so hab ich es halt aus Unwissen beim ersten bind gemacht.

Gruß,
Axel

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #22 am: 14 November 2017, 18:01:18 »
docker kann auch selber rauscopieren, Stichwort "docher cp"

https://docs.docker.com/engine/reference/commandline/cp/
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Steffen

  • Sr. Member
  • ****
  • Beiträge: 794
Antw:Fhem Docker Image
« Antwort #23 am: 14 November 2017, 20:01:28 »
Hallo!

Jetzt habe ich es, musste ein Paar Container löschen.
root@debian:/Docker_Test# docker-compose down
Stopping dockertest_fhem_1 ... done
Removing dockertest_fhem_1 ... done
Removing network dockertest_default

nun wollte ich aber noch ein Volumen hinzufügen und dann kommt der fehler:
root@debian:/Docker_Test# docker-compose up -d
ERROR: In file './docker-compose.yml', volume must be a mapping, not an array.

root@debian:/Docker_Test# cat docker-compose.yml
version: '2'

services:
   fhem:
        ports:
            - "8083:8083"
            - "7072:7072"
        image: steffen/fhem2
        privileged: true

volumes:
       - /opt/fhem/

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 1763
Antw:Fhem Docker Image
« Antwort #24 am: 14 November 2017, 20:29:21 »
Ich verstehe das mit dem „image: steffen/fhem2“ noch nicht. So musst du doch vorab manuell „builden“. Kannst du das Image bzw. das Dockerfile nicht einfach in das Unterverzeichnis legen und es in „build: fhem2“ umbenennen?

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #25 am: 14 November 2017, 21:02:39 »
volumes:
       - /opt/fhem/

Und da fehlt das Ziel, also z.B.:

volumes:
       - /opt/fhem/:/opt/fhem/

Hinweis:
Obige Lösung ist aus dem Kopf und da ich momentan genug Glühwein intus, ohne Gewähr!
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 1763
Antw:Fhem Docker Image
« Antwort #26 am: 14 November 2017, 21:45:09 »
- ./fhem/data:/opt/fhem

Offline Steffen

  • Sr. Member
  • ****
  • Beiträge: 794
Antw:Fhem Docker Image
« Antwort #27 am: 15 November 2017, 07:11:28 »
Guten Morgen!

Also irgendwie stehe ich auf dem schlauch, wenn ich mit dieser Config starte ist Fhem nicht erreichbar:
version: '2'
services:
  fhem:
    image: steffen/fhem3
    ports:
     - "8083:8083"
    volumes:
     - /fhem/data:/opt/fhem

damit schon:
version: '2'
services:
  fhem:
    image: steffen/fhem3
    ports:
     - "8083:8083"
    #volumes:
     #- /fhem/data:/opt/fhem

mein Host Ordner sieht so aus:
root@debian:/Docker_Test# ls -l /fhem/data
insgesamt 284
-rw-r--r--  1 root root  39189 Nov 15 07:02 configDB.pm
drwxr-xr-x 40 root root   4096 Nov 15 07:02 contrib
drwxr-xr-x  3 root root   4096 Nov 15 07:02 demolog
drwxr-xr-x  4 root root   4096 Nov 15 07:02 docs
drwxr-xr-x  8 root root   4096 Nov 15 06:52 fhem
drwxr-xr-x  6 root root  20480 Nov 15 07:02 FHEM
-rw-r--r--  1 root root    744 Nov 15 07:02 fhem.cfg
-rw-r--r--  1 root root  15740 Nov 15 07:02 fhem.cfg.demo
-rwxr-xr-x  1 root root 141228 Nov 15 07:02 fhem.pl
drwxr-xr-x  2 root root   4096 Nov 15 07:02 log
-rw-r--r--  1 root root  35751 Nov 15 07:02 MAINTAINER.txt
-rw-r--r--  1 root root    935 Nov 15 07:02 README_DEMO.txt
drwxr-xr-x  8 root root   4096 Nov 15 07:02 www

habe ich da einen Denkfehler, das /fhem/data doch gemountet wird und Fhem auf Docker seite drauf zugreifen können müsste???

Mfg Steffen

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #28 am: 15 November 2017, 08:02:20 »
Denk bitte mal nach:
Du sagst /fhem/data ... wo denkt wohl der Deamon, liegt dieses? Bestimmt nicht in Deinem "Home-Ordner"
« Letzte Änderung: 15 November 2017, 20:22:12 von Wernieman »
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Steffen

  • Sr. Member
  • ****
  • Beiträge: 794
Antw:Fhem Docker Image
« Antwort #29 am: 15 November 2017, 20:00:26 »
Hallo,

so recht verstehe ich nicht was du meinst, laut docker ist doch "HOST:CONTAINER" aber habe viel versucht doch irgendwie finde ich den Fehler nicht?!

Kann das an der Pfad angabe liegen, habe es auch mit ./ versucht?!

Mfg Steffen

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #30 am: 15 November 2017, 20:25:08 »
Wenn Du ./irgendeinverzeichnis angiebst, dann ist dieses eine "relative-Pfadangabe", dagegen ist ein /irgendeinverzeichnis eine Absolute vom root (/) aus gesehen. Der Unterschied ist "nur" der ".".

Deine Angabe "/fhem/data" bedeutet also, suche auf dem Host nach /fhem/data, vom root aus gesehen. Wenn Du jetzt auf der Konsole ein "ls /fhem/data" eingibst, wird Dein Pi bestimmt "meckern". Wenn Du obiges gelesen hast, solltest Du wissen warum.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Steffen

  • Sr. Member
  • ****
  • Beiträge: 794
Antw:Fhem Docker Image
« Antwort #31 am: 16 November 2017, 06:08:51 »
Guten Morgen,

ich habe es erstmal soweit, denn es war nicht die Pfad Angabe die war doch richtig so,
es lag an den Rechten für Fhem denn die wurde im gemappten Volumen nicht übernommen.

root@87452f5a1149:/# ls -l /opt/fhem
total 284
drwxr-xr-x  6 1001 root     20480 Nov 15 17:50 FHEM
-rw-r--r--  1 1001 root     35751 Nov 15 07:56 MAINTAINER.txt
-rw-r--r--  1 1001 root       935 Nov 15 07:56 README_DEMO.txt
-rw-r--r--  1 1001 root     39189 Nov 15 07:56 configDB.pm
drwxr-xr-x 40 1001 root      4096 Nov 15 17:50 contrib
drwxr-xr-x  3 1001 root      4096 Nov 15 17:50 demolog
drwxr-xr-x  4 1001 root      4096 Nov 15 17:50 docs
-rw-r--r--  1 1001 root      1229 Nov 16 04:54 fhem.cfg
-rw-r--r--  1 1001 root     15740 Nov 15 07:56 fhem.cfg.demo
-rwxr-xr-x  1 1001 root    141228 Nov 15 07:56 fhem.pl
drwxr-xr-x  2 1001 root      4096 Nov 16 04:54 log
drwxr-xr-x  3 1001 dialout   4096 Nov 16 04:54 restoreDir
-rw-r--r--  1 1001 root         0 Nov 15 14:30 testH
drwxr-xr-x  8 1001 root      4096 Nov 15 17:50 www

Ich versuche gerade einen Weg zu finden, das die Rechte für Fhem über compose gesetzt werden.

nachtrag: leider finde ich keine so guten Weg, hat jemand eine Idee?

Mfg Steffen

« Letzte Änderung: 16 November 2017, 07:30:07 von Steffen »

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #32 am: 16 November 2017, 09:43:13 »
der Container läuft mit root rechten, d.h. die Dateirechte im "Hostsystem" sind nicht relevant. Wie sieht denn jetzt Deine docker-compose aus?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Steffen

  • Sr. Member
  • ****
  • Beiträge: 794
Antw:Fhem Docker Image
« Antwort #33 am: 16 November 2017, 15:57:17 »
Hallo!

Hier meine compose-config:

root@debian:/docker# cat docker-compose.yml
version: '2'
services:
   fhem:
        ports:
            - "8083:8083"
            - "7072:7072"
        image: steffen/fhem3
        volumes:
           - /optH/fhem/:/opt/fhem
root@debian:/docker#

Ich versuche gerade über ein script das über compose gestartet wird, aber das klappt irgendwie auch nicht so recht...

root@debian:/docker# cat /optH/fhem/start.sh                                                                            #!/bin/bash
chown -R fhem /opt/fhem/

/etc/init.d/fhem start
root@debian:/docker#

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #34 am: 16 November 2017, 21:01:11 »
/optH/fhem/:/opt/fhemBist Du Dir da mit dem "H" Sicher???

Was sagt denn ein:
ls -lha /optH/fhem/
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Steffen

  • Sr. Member
  • ****
  • Beiträge: 794
Antw:Fhem Docker Image
« Antwort #35 am: 20 November 2017, 05:41:13 »
Guten Morgen!

Leider konnte ich mich erst jetzt melden doch ich hatte die Lösung gefunden und jetzt klappt erstmal alles wie es soll, ich werde mich da noch tiefer einarbeiten
denn das Thema Docker finde ich sehr spannend.

hier mal mein Config wie sie jetzt läuft...

Dockerfile
FROM debian:jessie

MAINTAINER Steffen Ewald <steffen.blogdns@googlemail.com>

ENV FHEM_VERSION 5.8
ENV DEBIAN_FRONTEND noninteractive
ENV TERM xterm

# Install dependencies
RUN apt-get update
RUN apt-get -y --force-yes install apt-utils
RUN apt-get upgrade -y --force-yes
RUN apt-get -y --force-yes install supervisor telnet wget git nano make gcc g++ apt-transport-https sudo perl build-essential snmpd snmp usbutils

# Install perl packages
RUN apt-get -y --force-yes install \
libavahi-compat-libdnssd-dev \
libalgorithm-merge-perl \
libclass-dbi-mysql-perl \
libclass-isa-perl \
libcommon-sense-perl \
libdatetime-format-strptime-perl \
libdbi-perl \
libdevice-serialport-perl \
libdpkg-perl \
liberror-perl \
libfile-copy-recursive-perl \
libfile-fcntllock-perl \
libio-socket-ip-perl \
libio-socket-ssl-perl \
libjson-perl \
libjson-xs-perl \
libmail-sendmail-perl \
libsocket-perl \
libswitch-perl \
libsys-hostname-long-perl \
libterm-readkey-perl \
libterm-readline-perl-perl \
libwww-perl \
libxml-simple-perl \
libdbd-sqlite3-perl \
libtext-diff-perl

# Install fhem
RUN echo Europe/Berlin > /etc/timezone && dpkg-reconfigure tzdata

RUN wget -qO - https://debian.fhem.de/archive.key | apt-key add -
RUN echo "deb https://debian.fhem.de/nightly ./" > /etc/apt/sources.list.d/fhem.list
RUN apt-get update
RUN apt-get -y --force-yes install fhem
RUN mkdir -p /var/log/supervisor

RUN mkdir /script
RUN mkdir /git_clone
RUN cd /git_clone
RUN wget https://raw.githubusercontent.com/Ewies/docker/master/supervisord.conf
RUN wget https://raw.githubusercontent.com/Ewies/docker_final/master/start.sh
RUN cp supervisord.conf /etc/supervisor/conf.d/supervisord.conf
RUN cp start.sh /script
RUN chmod +x /script/start.sh
# Ports
EXPOSE 8083

docker-compose.yml
version: '2'
services:
   fhem:
        ports:
            - "8083:8083"
            - "7072:7072"
        image: steffen/fhemfinal
        volumes:
           - /optH/fhem/:/opt/fhem
        entrypoint: ./script/start.sh

start.sh
#!/bin/bash

chown -R fhem /opt/fhem/

/usr/bin/supervisord

Mfg Steffen

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #36 am: 20 November 2017, 07:56:41 »
Warum startest Du über den supervisord, wenn Du es auch direkt starten kannst?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Steffen

  • Sr. Member
  • ****
  • Beiträge: 794
Antw:Fhem Docker Image
« Antwort #37 am: 20 November 2017, 08:19:06 »
Warum startest Du über den supervisord, wenn Du es auch direkt starten kannst?

weil sonst der Container nicht deamon Modus läudt, obwohl ich compose -d starte.
Warum das so ist konnte ich noch nicht vestellen.

Mfg Steffen

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 1763
Antw:Fhem Docker Image
« Antwort #38 am: 20 November 2017, 10:49:34 »
Ich stehe gerade wieder vor der gleichen Entscheidung.
Fakt ist: Wenn du FHEM alleine im Container laufen lässt, dann geht das wunderbar. Siehe auch: https://forum.fhem.de/index.php/topic,71928.msg681278.html#msg681278 (Stichwort: nofork-Attribut).

Sobald aber SSH hinzukommt, wird ein Dienst benötigt, der FHEM und SSHD für dich startet und überwacht.
Zwar widerspricht das dem ursprünglichen Docker-Gedanken, aber die meisten FHEM-Container haben im Docker-Hub anscheinend supervisord.

Ich versuche mich gerade krampfhaft daran zu gewöhnen, auf SSHD zu verzichten und per "docker exec" auf die Container zuzugreifen.
Das macht die Container sauberer und schlanker.

Ich bin kein Docker-Profi, aber supervisord ist für mich ein Hilfsmittel, auf das ich gerne verzichten würde.


Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5518
Antw:Fhem Docker Image
« Antwort #39 am: 20 November 2017, 12:20:39 »
supervisord wiederspricht, wie Du sagst, 100% dem Docker Gedanke. 1 Container 1 Dienst!

sshd sollte man auch wirklich nicht im Container terminieren lassen. Denn was mache ich, bei einem 2. Container, der Zugriff braucht? container <> VM!

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline LuBeDa

  • Full Member
  • ***
  • Beiträge: 155
Antw:Fhem Docker Image
« Antwort #40 am: 21 November 2017, 19:45:24 »
Hallo,
hat es jemand hinbekommen beim Erstellen eines neuen Containers direkt einmal FHEM zu aktualisieren also quasi einen "update all" Befehl abzusetzen?

Derzeit nehme ich das Dockerfile von:
FROM debian:jessie

MAINTAINER Matthias Kleine <info@haus-automatisierung.com>

Da ist beim Start ein altes FHEM installiert und Module wie z.B. YAAHM fehlen.

Offline ThoTo

  • Full Member
  • ***
  • Beiträge: 151
Antw:Fhem Docker Image
« Antwort #41 am: 23 November 2017, 18:44:48 »
Hallo,
hat es jemand hinbekommen beim Erstellen eines neuen Containers direkt einmal FHEM zu aktualisieren also quasi einen "update all" Befehl abzusetzen?

Derzeit nehme ich das Dockerfile von:
FROM debian:jessie

MAINTAINER Matthias Kleine <info@haus-automatisierung.com>

Da ist beim Start ein altes FHEM installiert und Module wie z.B. YAAHM fehlen.

Schau dir mal mein Github Repo an: https://github.com/t0th0mas/docker-smarthome
Ich habe die Dockerfiles meiner gesamten Umgebung hochgeladen, es fehlen nur noch die gesammelten Readme-Dateien 8)

Du kannst dir damit ein aktuelles FHEM Image bauen inkl. einem initialen Update.

LG Thomas
Intel NUC | Docker | Homematic | Sonoff | Hue

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher."
(Albert Einstein)

Offline LuBeDa

  • Full Member
  • ***
  • Beiträge: 155
Antw:Fhem Docker Image
« Antwort #42 am: 24 November 2017, 09:18:48 »
[EDIT] Hat sich erledigt, PEBCAK ;D

Du kannst dir damit ein aktuelles FHEM Image bauen inkl. einem initialen Update.

LG Thomas

Grundsätzlich eine sehr gute Umsetzung, leider hängt er hier:
---> c3978aad2770
Step 9/14 : COPY ./opt/fhem/FHEM/*.pm /tmp/
COPY failed: no source files were specified


Obwohl in dem Verzeichnis zwei *.pm Dateien sind. Den COPY Befehl davor macht er.

Ludger

« Letzte Änderung: 24 November 2017, 09:29:55 von LuBeDa »

Offline ThoTo

  • Full Member
  • ***
  • Beiträge: 151
Antw:Fhem Docker Image
« Antwort #43 am: 24 November 2017, 15:42:22 »
[EDIT] Hat sich erledigt, PEBCAK ;D

Danke für die Rückmeldung  :) Freut mich dass es dann noch geklappt hat!

LG Thomas
Intel NUC | Docker | Homematic | Sonoff | Hue

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher."
(Albert Einstein)

Offline ChrisW

  • Hero Member
  • *****
  • Beiträge: 2123
Antw:Fhem Docker Image
« Antwort #44 am: 21 Mai 2019, 21:06:47 »
jemand eine idee wieso DOCKER FHEM meine DIskstation "Volume" auslastet ? 100% CPU 20 Ram 3 von 8 GB
Raspberry PI3 mit allem möglichen.

 

decade-submarginal