Autor Thema: Offizielles FHEM Docker Basis Image für verschiedene Plattformen  (Gelesen 4991 mal)

Offline Loredo

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2882
  • ~ Challenging Innovation ~
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #15 am: 31 Juli 2018, 10:33:24 »
Ich denke FunkOdyssey hat sich jetzt auf das Git Repository für das Docker Image bezogen.
Um Verwirrung zu vermeiden: Rudi bezieht sich bei seiner Erklärung auf das Subversion Code Repository von FHEM alleine.
Es ist also wichtig zu verstehen, dass es zwei verschiedene Code Quellen sind, die in dem Docker Image zusammengeführt werden.


Das sieht man auch daran, dass ein Docker Image nicht nur die Rolling Tags "latest" und "dev" hat, sondern auch entsprechend der Version aus der Kombination FHEM+Docker (zu sehen/nutzen aber nur in den Plattform-spezifischen Repositories auf Docker Hub, also z.B. fhem/fhem-amd64_linux).
Der Versions-Tag sieht dann so aus:


   5.8-s17052_1.0.1 --> FHEM tagged version + s(=Subversion) + Code revision number; _ als Trennzeichen; Version Tag aus dem Git Docker Repository


Ein Development Image hat auf jeden Fall noch den Zusatz "-dev" hinten dran. In der Regel hat auch ein Development Image dann zusätzlich noch die Git Revision mit drin, sofern die Revision nicht gleichzeitig auch noch einen Version-Tag hat. Also beispielsweise so:


  5.8-s17052_1.0.1-dev --> entspricht tatsächlich auch der aktuellen "latest" Version, da es noch keine Änderungen seit der letzten "latest" Version gab.


Wenn die erste Änderung im Dev-Image vorhanden ist, jedoch noch nicht in "latest" veröffentlicht, sieht ein Development Tag so aus:


  5.8-s17052_1.0.1-1-gXXXXXX-dev --> die erste Nummer hinter dem Versions-Tag (hier 1.0.1) entspricht der Anzahl von Commits seit dem Tag, hier also erstmal nur eine Änderung. Danach kommt das "g" für Git, gefolgt von der Kurzschreibweise für den entsprechenden Commit. Zur besseren Kennzeichnung folgt dann noch am Schluss der Branch, hier immer "-dev".
FHEM-Module: ENIGMA2, GEOFANCY, ONKYO_AVR, PHTV, RESIDENTS, ROOMMATE, GUEST, HP1000, Pushover, THINKINGCLEANER, Wunderground | FHEM-Befehl: msg

Docker-FHEM 5.10dev auf Intel NUC mit Proxmox VE
Homematic via HMCCU, Hue Color Bulbs, LG OLED 65C8, Sonos Playbar+2xOne+Sub, 2x Sonos One, 1x Sonos Play:1

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 1294
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #16 am: 31 Juli 2018, 10:45:40 »
Danke, euch beiden, für die umfassende Erklärung.
Mir sind die Git&SVN wie auch Tags/Branches/Forks etc. schon (seit Jahren und als Entwickler) bekannt.  😄

Ich hatte bei den Docker-"Varianten" mich gewundert, wie es von FHEM selbst eine DEV-"Variante" geben kann. Nun habe ich den Unterschied aber verstanden.

Ich finde Loredos Docker-Repositories schon recht geil. Ich bin auch echt froh, dass du den Kniff von Joscha Middendorf übernommen hast. Bis dato habe ich mir meine Images selber gebaut. Aber das könnte sich mit der neuen Flexibilität (pre/post-Scripts) jetzt ändern.

Geile Arbeit.

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 1294
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #17 am: 06 August 2018, 15:45:47 »
Ich wollte gerade mein eigenes lepresenced-Build auf dein Image umstellen.

Ist das wirklich gewollte, dass deine Docker-Images den Namen der Plattformen enthalten?
homeautomationstack/fhem-lepresenced-amd64_linux
Wäre es nicht übersichtlicher, wenn man dafür eigene Docker-Tags anlegt? Oder gibt es dafür evtl. auch schon ein Meta-Repository?
« Letzte Änderung: 06 August 2018, 19:28:44 von FunkOdyssey »

Offline Morgennebel

  • Hero Member
  • *****
  • Beiträge: 1056
  • Proud systemd-free zone
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #18 am: 06 August 2018, 17:16:28 »
Moin,


ist es möglich, vier FHEM-Instanzen parallel auf demselben Server via Docker zu betreiben, die miteinander mit FHEM2FHEM reden?

Ich hätte gerne:

  • Ein "Main"-FHEM
  • Ein FHEM für Internet Pull/Push-Dinge (Proplante, Wetter, Luftdaten usw.)
  • Ein FHEM für zeitkritische Dinge (Mischersteuerung)
  • Ein "DEV/QA"-FHEM

Dabei sollten das Main und DEV/QA-FHEM auf die Daten der beiden anderen FHEMs zugreifen können...

Danke, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 18 Monaten

FHEM: LattePanda x86 4/64GB
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT, vThings, Homematic, Luftsensor.info, ESP8266, ESERA

Offline Loredo

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2882
  • ~ Challenging Innovation ~
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #19 am: 06 August 2018, 19:47:43 »
Das ist absolut möglich, dafür ist Docker prima geeignet. Einfach die entsprechende Anzahl Container starten und so konfigurieren, wie sie für die jeweilige Umgebung sein sollen.
Das wiederum ist dann aber keine Docker Frage mehr.
FHEM-Module: ENIGMA2, GEOFANCY, ONKYO_AVR, PHTV, RESIDENTS, ROOMMATE, GUEST, HP1000, Pushover, THINKINGCLEANER, Wunderground | FHEM-Befehl: msg

Docker-FHEM 5.10dev auf Intel NUC mit Proxmox VE
Homematic via HMCCU, Hue Color Bulbs, LG OLED 65C8, Sonos Playbar+2xOne+Sub, 2x Sonos One, 1x Sonos Play:1

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 1294
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #20 am: 17 August 2018, 16:13:53 »
@Loredo: Dürfte ich noch einmal kurz auf folgenden Post verweisen: https://forum.fhem.de/index.php/topic,89745.msg824810.html#msg824810
Könnte sein, dass du diesen vielleicht übersehen hast. Danke.



Könnte man im DockerHub-Projekt vielleicht einen Link auf das GitHub-Repo setzen?
Dies ist bei vielen Projekten der Fall und ganz hilfreich.
« Letzte Änderung: 17 August 2018, 16:18:01 von FunkOdyssey »

Offline M.Schulze

  • Commercial User
  • New Member
  • *
  • Beiträge: 9
  • Principal Strategist, Maker
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #21 am: 18 August 2018, 08:38:09 »
Hallo,

Problem wird leider sein, das im Pfad /opt/fhem die persistenten Dateien des Nutzers nicht klar von den FHEM-Dateien aus dem Image getrennt sind. Ein einfaches Update via Image-Tausch (bevorzuge ich) scheint mir hier also nicht machbar zu sein - also zumindest mit diesem "Offiziellen" Image nicht. Vielleicht könnte man FHEM hier generell optimieren damit es nicht jeder selbst machen muss.

MFG

Offline Loredo

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2882
  • ~ Challenging Innovation ~
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #22 am: 18 August 2018, 08:39:58 »
Wie Rudi erklärt hat, ist das auch nicht die richtige Art, um FHEM zu aktualisieren. Aus dem selben Grund gibt es kein Update über das Debian Paket.
FHEM-Module: ENIGMA2, GEOFANCY, ONKYO_AVR, PHTV, RESIDENTS, ROOMMATE, GUEST, HP1000, Pushover, THINKINGCLEANER, Wunderground | FHEM-Befehl: msg

Docker-FHEM 5.10dev auf Intel NUC mit Proxmox VE
Homematic via HMCCU, Hue Color Bulbs, LG OLED 65C8, Sonos Playbar+2xOne+Sub, 2x Sonos One, 1x Sonos Play:1

Offline pipp37

  • Developer
  • Full Member
  • ****
  • Beiträge: 138
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #23 am: 18 August 2018, 10:50:50 »
Docker-Compose:
Vorerst super Arbeit!
Ich wollte mir gerade mal ein neues Image für Fhem bauen und habe deines gefunden.

Du könntest auch ein docker-compose.yml im Git anbieten.

Im Beispiel wird ein eigenes Docker Volume unter /var/lib/docker/volumes für fhem verwendet.

Einen Ordner /docker/fhem anlegen und  die Datei  docker-compose.yml erstellen.

Variante 1: ohne Modifikation mit host_network
version: '2'
volumes:
  files:
    driver: local

services:
  fhem:
    container_name: fhem
    image: "fhem/fhem"
    restart: always
    network_mode: "host"
    volumes:
      - "files:/opt/fhem"

Variante 2: mit Modifikation und host_network
Dabei ein Verzeichnis /docker/fhem/build  anlegen.
Darin die Datei  Dockerfile   erstellen.
FROM fhem/fhem
RUN apt-get update
RUN apt-get install -y mc libmime-lite-perl libsnmp-perl libnet-snmp-perl libsnmp-session-perl libwww-curl-perl snmp
Die fehlenden  Snmp Libs werden hier z.B. nachinstalliert.

/docker/fhem/docker-compose.yml
version: '2'
volumes:
  files:
    driver: local

services:
  fhem:
    container_name: fhem
   
    build: ./build
    restart: always

    network_mode: "host"
    volumes:
      - "files:/opt/fhem"

Der Docker Container wird im Verzeichnis /docker/fhem wie folgt verwaltet.
docker-compose build  # erzeugt/ändert den modifizierten Container der Variante 2
docker-compose up &  # erzeugt und startet den Container
docker-compose down # löscht den Container
Vmware-ESX-VM-Debian8 Main-FHEM -> Raspberry Pi-B ser2net
HMLAN mit HomeMatic Komponenten, Busware SCC433 stacked SCC868 (culfw), Jeelink, MAX Heizkörperthermostate, Enigma2 (Vudo2/DM800SE), Philips 55" Ambilight PHTV - WMBUS EnergyCam+Engelmann FAW, Intertechno-Komponenten, Ubiquiti mPower

Offline M.Schulze

  • Commercial User
  • New Member
  • *
  • Beiträge: 9
  • Principal Strategist, Maker
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #24 am: 18 August 2018, 11:20:45 »
Wenn du Docker-Compose nutzt würde ich gleich noch einen File-Container und einen Reverse-Proxy-Container vorsehen. Dann kann man auf einem Server beliebig viele FHEM Installationen gleichzeitig laufen lassen. Macht aber auch so Sinn.

Offline Loredo

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2882
  • ~ Challenging Innovation ~
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #25 am: 24 August 2018, 15:08:31 »
Ich wollte gerade mein eigenes lepresenced-Build auf dein Image umstellen.

Ist das wirklich gewollte, dass deine Docker-Images den Namen der Plattformen enthalten?
homeautomationstack/fhem-lepresenced-amd64_linux
Wäre es nicht übersichtlicher, wenn man dafür eigene Docker-Tags anlegt? Oder gibt es dafür evtl. auch schon ein Meta-Repository?

Die anderen Images sind derzeit nicht für die breite Öffentlichkeit bestimmt. Sonst stände ja was darüber im ersten Post  ;)
Sie sind deshalb ja auch gar nicht im selben Docker Hub Repository unter hub.docker.com/r/fhem/.

Könnte man im DockerHub-Projekt vielleicht einen Link auf das GitHub-Repo setzen?Dies ist bei vielen Projekten der Fall und ganz hilfreich.

Jaein, den Link habe ich absichtlich nicht publiziert. Ich möchte derzeit nicht, dass unbedarfte Personen zu leicht mit der Nase darauf stoßen, weil ich dazu keine großartigen Fragen beantworten möchte und die anderen Repos - wie oben schon erwähnt - derzeit nicht für die breitere Masse bestimmt sind.
Auch geht es hier im Forum Post um ein FHEM Basis Image. Die anderen Images sind und werden nicht Teil davon sein, da gibt es eine ganz klare Trennung. Aus diesem Grund gibt es auch das Image als "Basis", ich nutze es selbst für weitere Entwicklungen und es ist dabei quasi als "Abfallprodukt" herausgepurzelt.

Im Grunde würden die Sourcen nach github.com/fhem/fhem-docker gehören, aber den Projektnamen hat schon jemand anderes (ungenutzt) belegt.

Du könntest auch ein docker-compose.yml im Git anbieten.

Ich habe eine passende Beispiel docker-compose.yml hinzugefügt und die README auch um eine Beispielanwendung zusammen mit Git als Versionsverwaltung erweitert.


Die fehlenden  Snmp Libs werden hier z.B. nachinstalliert.


Habe ich ins Basis Image mit aufgenommen.
« Letzte Änderung: 24 August 2018, 15:16:33 von Loredo »
FHEM-Module: ENIGMA2, GEOFANCY, ONKYO_AVR, PHTV, RESIDENTS, ROOMMATE, GUEST, HP1000, Pushover, THINKINGCLEANER, Wunderground | FHEM-Befehl: msg

Docker-FHEM 5.10dev auf Intel NUC mit Proxmox VE
Homematic via HMCCU, Hue Color Bulbs, LG OLED 65C8, Sonos Playbar+2xOne+Sub, 2x Sonos One, 1x Sonos Play:1

Offline Shojo

  • Full Member
  • ***
  • Beiträge: 325
  • Wie, Was, Wo?
    • DER BASTELBUNKER / Meine kleinen Projekte…
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #26 am: 24 August 2018, 20:50:24 »
Ich wollte nur mal ein Danke da lassen.
Das Image ist echt super und man sehr gut darauf seine eigene Installation aufbauen.
Ich habe tatsächlich für den zwitsch von meiner "normalen" Installation auf die Docker 45 min benötigt (mit allen Spielereien und einlesen ;) )

Gruß
Dennis
« Letzte Änderung: 24 August 2018, 21:10:58 von Shojo »
FHEM auf: Odroid-C2 (Docker)
Bridge: Signalduino 433mHz, SignalESP 433mHz, nanoCUL 868mHz, HM-MOD-RPI-PCB, JeeLink, zigbee2mqtt (CC2531 USB sniffer) ,hue
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum, ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix

Offline Loredo

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2882
  • ~ Challenging Innovation ~
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #27 am: 24 August 2018, 22:15:54 »
Danke für das Feedback! Freut mich, dass es für dich so einfach lief :-)
FHEM-Module: ENIGMA2, GEOFANCY, ONKYO_AVR, PHTV, RESIDENTS, ROOMMATE, GUEST, HP1000, Pushover, THINKINGCLEANER, Wunderground | FHEM-Befehl: msg

Docker-FHEM 5.10dev auf Intel NUC mit Proxmox VE
Homematic via HMCCU, Hue Color Bulbs, LG OLED 65C8, Sonos Playbar+2xOne+Sub, 2x Sonos One, 1x Sonos Play:1

Offline supernova1963

  • Full Member
  • ***
  • Beiträge: 320
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #28 am: 25 August 2018, 10:18:40 »
Ich wollte ebenfalls mal ein Danke da lassen.
Das Image ist echt super und man sehr gut darauf seine eigene Installation aufbauen.
Ich habe einfach mal unter OS X docker mit Kitematic ausprobiert. Es funktioniert nachdem ich das volume für /opt/fhem mit ~/opt/fhem definiert habe.

Gruß
Gernot

Edit: Mit Ausnahme:
  • des "DockerImageInfo" devices
  • der Einbindung von USB
« Letzte Änderung: 25 August 2018, 11:10:15 von supernova1963 »
Fhemserver: Mac Mini - Parallels Desktop mit Ubuntu Server 18.04,
Module: Harmony, fakeRoku, FBAHA, Fritzbox, MQTT + espBridge + TASMOTA_DEVICE, HMCCU, Nmap, ...

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 1294
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #29 am: 03 September 2018, 12:36:12 »
Hallo,

ich starte FHEM aktuell wie folgt:

    fhem:
        container_name: fhem
        restart: unless-stopped
        cap_add:
            - SYS_ADMIN
            - NET_ADMIN
            - NET_RAW
        expose:
            - "7072"
            - "8083"
        ports:
             - 7072:7072
             - 8083:8083
        privileged: true
        image: fhem/fhem
        volumes:
             - /etc/localtime:/etc/localtime:ro
             - ./data/fhem/:/opt/fhem
        network_mode: "host"
        environment:
            TIMEOUT: 10
            TZ: Europe/Berlin

Heute habe nach in dem "docker-compose up" folgende Fehlermeldungen:

fhem          | /entry.sh: line 87: $(date +"$LOGFILE"): No such file or directory
fhem          | /entry.sh: line 87: $(date +"$LOGFILE"): No such file or directory
fhem          | /entry.sh: line 87: $(date +"$LOGFILE"): No such file or directory
fhem          | /entry.sh: line 87: $(date +"$LOGFILE"): No such file or directory
fhem          | /entry.sh: line 87: $(date +"$LOGFILE"): No such file or directory
fhem          | /entry.sh: line 87: $(date +"$LOGFILE"): No such file or directory
fhem          | /entry.sh: line 87: $(date +"$LOGFILE"): No such file or directory

Zeile 87 ist in der Function "PrintNewsLines".

Das Log ist in entry.sh wie folgt definiert:
LOGFILE="${FHEM_DIR}/log/fhem-%Y-%m.log"
Mein FHEM-Log ist jedoch auf täglich eingestellt: fhem-2018-09-03.log

Aber selber wenn ich ein Dummy-Log anlege, so bleibt der Fehler.

Hat jemand eine Idee?



Nachtrag:
Okay, ich musste die Rechte neu setzen und dann ging es.
Aber ich musste vorher ein "touch fhem-2018-09.log" ausführen.
Könnte man die Syntax der Log-Datei vielleicht per ENV mitgeben? Sonst habe ich spätestens im Oktober wieder ein Problem.

In FHEM will ich es gerne bei täglichen Logs lassen.
« Letzte Änderung: 03 September 2018, 12:41:34 von FunkOdyssey »

 

decade-submarginal