Offizielles FHEM Docker Basis Image für verschiedene Plattformen

Begonnen von Loredo, 28 Juli 2018, 21:24:57

Vorheriges Thema - Nächstes Thema

FunkOdyssey


Shojo

Zitat von: Loredo am 16 September 2018, 20:44:42
Den Sonos Daemon sollte man dafür in einen eigenen Container auslagern. Der Travis Build, resp. ein fertiges Image, dafür steht noch aus.
Das Dockerfile sieht bei mir so aus:
......
Danke hat wunderbar geklappt :)
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

devil77

Hallo,
ich bekommen bei mir immer folgende Meldung im log
sort: cannot read: '/image_info.*': No such file or directory
Was hat das zu bedeuten? Kommt auch nachdem ich das Dockerfile aktualisiert habe.

Dockerimageinfo sieht so aus
CFGFN     
   CHANGED   
   NAME       DockerImageInfo
   NR         113
   STATE      ok
   TYPE       DockerImageInfo
   READINGS:
     2018-10-11 07:30:31   image.created   2018-10-10T05:08:23+0000
     2018-09-20 11:01:37   image.description A basic Docker image for FHEM house automation system, based on Debian Stretch.
     2018-09-24 11:38:11   image.documentation https://github.com/docker-home-automation-stack/fhem-docker/blob/9e476fccc8df4aa64c7d67a05ac0bf3f763bfcc5/README.md
     2018-09-20 11:01:37   image.licenses  MIT
     2018-09-24 11:38:11   image.revision  9e476fccc8df4aa64c7d67a05ac0bf3f763bfcc5
     2018-09-20 11:01:37   image.source    https://github.com/docker-home-automation-stack/fhem-docker/
     2018-09-20 11:01:37   image.title     fhem-amd64_linux
     2018-09-20 11:01:37   image.url       https://hub.docker.com/r/fhem/fhem-amd64_linux
     2018-09-20 11:01:37   image.vendor    FHEM
     2018-10-11 07:30:31   image.version   5.9-s17498_1.3.0-beta-1-g9e476fc-dev


Docker läuft bei mir auf einem Synology NAS.

Eine weitere Frage habe ich noch zum Health-Check. Wie funktioniert der genau und muss dazu der Telnet Port in Docker nach außen weitergeleitet werden?

Loredo

Zitat von: devil77 am 11 Oktober 2018, 09:11:08
ich bekommen bei mir immer folgende Meldung im log
sort: cannot read: '/image_info.*': No such file or directory
Was hat das zu bedeuten? Kommt auch nachdem ich das Dockerfile aktualisiert habe.

Ich habe dafür nochmals einen Fix eingecheckt, sollte damit hoffentlich dann gefixt bleiben.

Der Healthcheck funktioniert rein lokal auf dem FHEM Server innerhalb des Containers, es ist nicht notwendig den Telnet Port von außerhalb des Containers erreichbar zu haben. Das bedeutet, dass sowohl die Definition in FHEM nicht unbedingt "global" sein muss und dass auch keine Portweiterleitung für den Docker Container definiert werden muss.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

hoppel118

Moinsen,

mit Begeisterung habe ich diesen Thread gefunden, da FHEM das einzige ist, was bei mir noch nicht dockerisiert ist/wurde.

FHEM läuft bei mir auf Openmediavault4 (Debian Stretch).

Folgende Fragen habe ich nun:

1. Werden die Daten in den Container übernommen, wenn ich den Ordner /opt/fhem in die Docker-Config einbinde, so dass ich /opt/fhem danach löschen kann oder ist es danach weiterhin als Config-Verzeichnis erforderlich? Oder soll ich lieber komplett von vorn anfangen und keine Altdaten übernehmen? Das wäre allerdings ziemlich heftig.
2. Soll/muss ich eine Netzwerkbridge konfigurieren oder geht auch Host-Modus? Bin der Meinung, dass ich gerade gelesen hatte, dass nur der Bridge-Modus funktioniert?
3. Ich nutze einen HM-CFG-USB. Wenn ich es richtig verstanden habe, muss ich den Container privilegiert starten. Gibt es dann noch etwas zu beachten?
4. Ich nutze momentan SSL. Funktioniert das auch mit diesem Docker Image? Was muss ich dabei beachten?
5. Ich nutze momentan zusätzlich eine Homebridge. Was sollte ich machen, um Homebridge auch weiterhin nutzen zu können? Brauche ich für die Homebridge einen extra Container oder kriegt man das irgendwie in diesen Container integriert?

Ich hoffe, die Fragen sind nicht allzu dumm. ;) Ich bin aber nicht ganz auf den Kopf gefallen. Habe einige Jahre Linux-Erfahrung. Bei Docker habe ich bisher allerdings lediglich fertige Container-Images installiert und konfiguriert. Der FHEM-Container wird meiner Einschätzung nach etwas aufwändiger.

Danke euch und Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic | HomeConnect | MQTT | Philips Hue | Sonos | Unifi Network & Protect | vbus | Xiaomi

Loredo

Zitat von: hoppel118 am 29 Oktober 2018, 22:37:52
1. Werden die Daten in den Container übernommen, wenn ich den Ordner /opt/fhem in die Docker-Config einbinde, so dass ich /opt/fhem danach löschen kann oder ist es danach weiterhin als Config-Verzeichnis erforderlich? Oder soll ich lieber komplett von vorn anfangen und keine Altdaten übernehmen? Das wäre allerdings ziemlich heftig.


Daten, die innerhalb eines Containers wären, sind nicht persistent. Deshalb braucht es immer ein externes Config Verzeichnis. Du kannst einfach /opt/fhem von deinem Host auch innerhalb des Containers verlinken oder das Verzeichnis auch woanders hin verschieben und von dort in den Container als Volume laden.


Zitat von: hoppel118 am 29 Oktober 2018, 22:37:522. Soll/muss ich eine Netzwerkbridge konfigurieren oder geht auch Host-Modus? Bin der Meinung, dass ich gerade gelesen hatte, dass nur der Bridge-Modus funktioniert?


Das ist dem Image eigentlich egal, aber getestet und entwickelt wird das Image als Standalone. Docker Images generell im Host Modus zu betreiben ist nicht unbedingt der Grund, warum man Docker verwendet.

Zitat von: hoppel118 am 29 Oktober 2018, 22:37:523. Ich nutze einen HM-CFG-USB. Wenn ich es richtig verstanden habe, muss ich den Container privilegiert starten. Gibt es dann noch etwas zu beachten?


Das weiß ich nicht, das ist eine Docker spezifische Frage, unabhängig von FHEM. Wahrscheinlich musst du aber auch noch das USB Device durchreichen. Wenn Umgebungen virtualisiert werden, dann ist es prinzipell immer eine gute Idee davon Abstand zu nehmen, Geräte durchreichen zu müssen. Ich empfehle einen Wechsel auf IP-only (z.B. CCU3 über HMCCU Modul).

Zitat von: hoppel118 am 29 Oktober 2018, 22:37:524. Ich nutze momentan SSL. Funktioniert das auch mit diesem Docker Image? Was muss ich dabei beachten?


Sicher, es gibt nichts spezielles zu beachten, außer dass du alle Dateien eben im /opt/fhem Ordner haben musst, damit sie nicht verloren gehen können.

Zitat von: hoppel118 am 29 Oktober 2018, 22:37:525. Ich nutze momentan zusätzlich eine Homebridge. Was sollte ich machen, um Homebridge auch weiterhin nutzen zu können? Brauche ich für die Homebridge einen extra Container oder kriegt man das irgendwie in diesen Container integriert?


Das Docker Konzept sieht generell vor, dass für jeden Prozess idealerweise ein eigener Docker Container besteht. Das selbe gilt für Homebridge, insbesondere auch, weil Homebridge tatsächlich im Host Modus betrieben werden muss.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

hoppel118

Moinsen,

danke erstmal @Loredo für die Antworten. Habe sicher noch einiges zu lernen und zu verstehen im Thema Docker. ;)

Das letzte FHEM Update habe ich vor ca. 8 Monaten durchgeführt, so dass ich das gerade erstmal nachgeholt habe, um mit der Migration zu Docker sauber starten zu können. Nun möchte ich allerdings ein Bisschen abwarten, ob es durch das Update an sich irgendwelche Probleme gibt. Ich habe keine Lust mich nachher durch Fehler zu wühlen, ohne zu wissen, ob diese durch das FHEM Update oder die Docker-Migration entstanden sind. ;)

Ich melde mich wieder.

Viele Grüße Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic | HomeConnect | MQTT | Philips Hue | Sonos | Unifi Network & Protect | vbus | Xiaomi

The-Holgi

#52
Hallo,
erstmal besten Dank an Loredo.
Bin gerade dabei von meinem Raspberry auf einen HP Thin Client "umzuziehen".
Hat soweit auch gut geklappt, dank der Anleitung im github.
In portainer wird der container allerdings als "unhealty" angezeigt, woran könnte das liegen?

so sieht meine docker compose aus:
# This is an exmaple Docker Compose file to start your own Docker Stack

version: '2.3'

networks:
  net:
    driver: bridge
    # enable_ipv6: true
    ipam:
      driver: default
      config:
        - subnet: 172.27.0.0/24
          gateway: 172.27.0.1
        # - subnet: fd00:0:0:0:27::/80
        #   gateway: fd00:0:0:0:27::1

services:

  ####
  # HINT: use only ONE of the example "fhem:" service
  # definitions below !
  #


      # CONFIGTYPE: configDB



  # Example to connect USB to the container w/
  # privileged mode (not recommended for security reasons)
  fhem:
    image: fhem/fhem:latest
    restart: always
    privileged: true
    networks:
      - net
    ports:
      - "7072:7072"
      - "8083:8083"
    volumes:
      - "./fhem/:/opt/fhem/"
      - "/dev/ttyUSB0:/dev/ttyUSB0"
    environment:
      FHEM_UID: 6061
      FHEM_GID: 6061
      TIMEOUT: 10
      RESTART: 1
      TELNETPORT: 7072
      TZ: Europe/Berlin


Außerdem bekomme backup über bitbucket nicht hin:
holgi@debian:/docker/home$ sudo git push --force --set-upstream origin master
Permission denied (publickey).
fatal: Konnte nicht vom Remote-Repository lesen.

Bitte stellen Sie sicher, dass die korrekten Zugriffsberechtigungen bestehen
und das Repository existiert.
holgi@debian:/docker/home$

Hatte mich dazu vorher bei bitbucket mit usernamen theholgi angemeldet, was fehlt da wohl noch?







Gruß Holger
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

Loredo

Zitat von: The-Holgi am 19 November 2018, 10:44:34
In portainer wird der container allerdings als "unhealty" angezeigt, woran könnte das liegen?


Es wird eine Telnet Instanz benötigt, die zumindest auf Localhost hört. Die Instanz wird automatisch angelegt, wenn du  mit einer frischen FHEM Instanz startest. Bei einer bestehenden Instanz musst du das Gerät ggf. manuell hinzufügen:




defmod telnetPort telnet 7072



Zitat von: The-Holgi am 19 November 2018, 10:44:34
Außerdem bekomme backup über bitbucket nicht hin:
[...]
Hatte mich dazu vorher bei bitbucket mit usernamen theholgi angemeldet, was fehlt da wohl noch?


Was meinst du mit angemeldet, du meinst lokal von der Linux Shell aus?
Generell gibt es da zwei Möglichkeiten und die hängen davon ab, ob du das externe Repository mit SSH oder per HTTPS eingebunden hast. Beides funktioniert grundsätzlich, wobei SSH wahrscheinlich etwas einfacher ist. Dafür muss dein Linux Benutzer einen SSH Schlüssel erstellt haben und der Public Schlüssel muss bei Bitbucket hinterlegt werden, um den Zugriff zu gestatten. Google sollte dir da helfen:


https://confluence.atlassian.com/bitbucket/set-up-ssh-for-git-728138079.html
https://confluence.atlassian.com/bitbucketserver/ssh-access-keys-for-system-use-776639781.html

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

The-Holgi

Hallo,
telnet ist definiert. Probleme gibt es wohl mit dem Passwort. Sobald ich ein Passwort in allowed_telnetPort setze kommt der Fehler Login denied via telnetPort_127.0.0.1_34158.
Wenn ich das attr password lösche ist der Fehler weg, die "Farbe"  des state Feldes in portainer wechselt dann von orange zu grün aber healthy steht dennoch da.
Woran könnte das liegen?
Auf dem Raspberry gab es keine Probleme (hatte das komplette backup des Raspberry in das fhem Verzeichnis des "neuen Rechners" entpackt).
Schon erstaunlich das der "Rest" so problemlos funktioniert.

Gruß Holger
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

Loredo

Zitat von: The-Holgi am 20 November 2018, 11:20:44
telnet ist definiert. Probleme gibt es wohl mit dem Passwort. Sobald ich ein Passwort in allowed_telnetPort setze kommt der Fehler Login denied via telnetPort_127.0.0.1_34158.
Wenn ich das attr password lösche ist der Fehler weg, die "Farbe"  des state Feldes in portainer wechselt dann von orange zu grün aber healthy steht dennoch da.
Woran könnte das liegen?

Der Zugriff von lokal muss ohne Passwort erlaubt sein. Das erreichst du, indem du "globalpassword" statt "password" im allowed Device setzt. Es darf kein Attribut "password" vorhanden sein. Also z.B.:


defmod allowed_telnetPort allowed
attr allowed_telnetPort globalpassword SHA256:AAAAAA:BBBBBBBBBBBBB
attr allowed_telnetPort validFor telnetPort
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

The-Holgi

Danke für den Tip, jetzt geht es. Das in portainer healthy anstatt running steht ist normal?

Gruß Holger
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP


The-Holgi

Supi,
dann muß ich jetzt nur noch die dashbutten mit dhcp und und den hyperion server ans laufen bekommen.
Habe hier einen dummy erstellt mit dem ich den Raspberry auf dem hyperion läuft herunterfahre:
"ssh pi@192.168.178.62 sudo shutdown -h now" das funktioniert leider nicht aus dem docker container nicht.

Gruß Holger
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP