Ankündigung

Einklappen
Keine Ankündigung bisher.

Edomi im Docker-Container - RockyLinux (x86_64 & aarch64)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Edomi im Docker-Container - RockyLinux (x86_64 & aarch64)


    Hallo miteinander,

    die Version 2.03.3 des Edomi-Dockerimages basierend auf RockyLinux ist verfügbar (vorherige CentOS 6/7 Versionen bleiben bestehen, siehe entsprechender Thread). Dockerfiles incl. Dokumentation befinden sich auf GitHub und hier kann das Image bezogen werden. Folgende Anmerkungen dazu:
    • Das Image
      • basiert auf RockyLinux
      • ist ein Multi-Arch-Image für x86_64 sowie ARMv8 (aarch64)
      • Image-Pull auf beiden Architekturen gleich:
        Code:
        docker pull starwarsfan/edomi-docker:2.03.3
    • Es gibt aktuell die Version 2.03.3
    • Das Basis-System wurde in das Image starwarsfan/edomi-baseimage ausgelagert, welches wiederum auf starwarsfan/edomi-baseimage-builder basiert. Damit müssen nicht bei jedem Build die RockyLinux-Pakete heruntergeladen und installiert werden
    • Edomi selbst befindet sich im Image starwarsfan/edomi-docker
    • Es sind Mountpoints für die Verzeichnisse /var/edomi-backups, /var/lib/mysql sowie /usr/local/edomi vorhanden, so dass insbesondere die Backups auf einem Verzeichnis auf dem Host vorgehalten werden können
    • Integrierter Reverse-Proxy. Damit braucht es kein Mapping für den Websocket-Port mehr!
    • Es wird bei jedem Start des Containers das Löschen der mysql.sock verhindert
    • Die Fehlermeldung bzgl. /dev/vcsa sollte nicht mehr auftreten.
    • Es sind zwingend die folgenden Optionen bei docker run ... zu verwenden:
      • -p <host-port>:88
        Es ist zwingend notwendig, die verwendeten Ports mit jeweils einem solchen Statement in den Container zu mappen. Das betrifft insbesondere den http-Port sowie die drei Ports für die KNX-Kommunikation. Werden weitere Ports verwendet, bspw. für UDP-Traffic aus eigenen Logiken heraus, müssen diese ebenfalls nach obigem Schema gemappt werden.
      • -e HTTPPORT=<host-port>
        Mit dieser Option muss der verwendete Zugriffsport angegeben werden, sofern es nicht Port 80 (http) ist. Das ist notwendig, damit der integrierte ReverseProxy korrekt arbeitet.
      • --restart=on-failure
        Diese Option wird benötigt, damit der Container via Edomi-Admin-UI gestoppt oder neu gestartet werden kann.
    • Der Container kann via Edomi-Update-Mechanismus auch direkt aktualisiert werden, wenn eine neue Edomi-Version vorliegt.
    • PHP 7.4 mit den folgenden Paketen:
      • php
      • php-curl
      • php-gd
      • php-json
      • php-mbstring
      • php-mysqlnd
      • php-process
      • php-snmp
      • php-soap
      • php-xml
      • php-zip
    • Es ist eine ganze Reihe zusätzlicher Pakete für Userland-LBS'e bereits vorab installiert. Namentlich für die folgenden Bausteine:
      • Telegram-LBS (19000303 / 19000304)
      • Mailer-LBS (19000587)
      • Philips HUE Bridge (19000195)
      • MQTT Publish Server (19001051)
      • AlexaControl LBS (19000809)
      • MikroTik-LBS (19001059)
    • Für den Image-Build steht in beiden Git-Repos das Helper-Script buildImage.sh zur Verfügung. Details siehe "buildImage.sh -h".
    Achtung 1: Insbesondere bei der Verwendung des Edomi-eigenen Update-Mechanismus ist eine gewisse Vorsicht geboten! Wird ein neuer Container angelegt (docker run ...), so wird dieser die Edomi-Version enthalten, welche das ursprüngliche Docker-Image enthält. Mitunter passen da aber die vorhandenen Backup-Daten nicht dazu, wenn es bereits eine neuere Edomi-Version gab und der Container via Edomi selbst auf die neueste Version aktualisiert wurde. Es sollte als dafür gesorgt werden, dass es ein Backup der alten Edomi-Version gibt, welches nach einem erneuten docker run ... importiert und danach auf die neueste Edomi-Version aktualisiert wird.

    Die empfohlene Vorgehensweise für ein Update des Basis-Images ist diese hier:
    1. Backup machen
    2. Edomi auf aktuelle Version updaten
    3. Erneutes Backup machen
    4. Neues Image pullen
    5. Edomi stoppen
    6. Neuen Container basierend auf neuem Image incl. der vorhandenen Volumes einrichten
    7. Neuen Container starten
    8. Backup einspielen
    Achtung 2: Der Websocket-Port darf über das Admin-UI nicht geändert werden!
    Achtung 3: Zugriff momentan nur via http:// möglich. Für die Erweiterung auf https:// können sich nginx-Spezialisten gern bei mir melden!

    Feedback ist wie immer gern gesehen, also immer her damit!
    Kind regards,
    Yves

    #2
    Hallo Yves,

    Danke für deine Arbeit.
    Ich verwende dein centos Image bereits seit 2 Jahren ohne Probleme.

    Wäre es möglich, dass du auch eine Version des neuen Images ohne nginx anbietest oder den abschaltbar machst?
    Ich habe sowieso bereits einen nginx im Netz mit letsencrypt am laufen und möchte eine weiteren Proxy dazwischen eigentlich vermeiden.

    Schönes Wochenende,
    Philipp

    Kommentar


      #3
      Auf das hab ich mich sehr gefreut, bin gespannt auf einen Test.
      Habe erst kürzlich an einem völlig gekapselten Docker ohne jegliche Portfreigabe nach extern gearbeitet, was bis auf den websocket erfolgreich geklappt hat.

      Mit deinem neuen Image sollte dann der websocket auch problemlos funktionieren!

      Herzlichen Dank!

      Kommentar


        #4
        Hallo Philipp

        Zitat von philipp900 Beitrag anzeigen
        Wäre es möglich, dass du auch eine Version des neuen Images ohne nginx anbietest oder den abschaltbar machst?
        Das ist vermutlich gar nicht nötig. Ich habe am Edomi-Setup nichts verändert. Das heisst, dass der Edomi-Indianer unverändert an Port 80 lauscht. Aus diesem Grund muss beim neuen Container der eingehende Port auch auf Port 88 gemappt werden, weil nginx auf diesem Port lauscht und dann alles weitere im Container an die Edomi-Ports weiterreicht. Von daher kannst Du einfach mal probieren, das Portmapping wie bisher zu machen, dann geht's am integrierten Nginx vorbei.
        Kind regards,
        Yves

        Kommentar

        Lädt...
        X