Ankündigung

Einklappen
Keine Ankündigung bisher.

alternatives Docker Image

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

    alternatives Docker Image

    Hi,

    Ich habe ein alternatives Docker Image erstellt. Evtl. kann es ja jemand brauchen.

    Vorteile:
    • deutlich kleiner
    • aktuell:
      Bullseye-slim
      Python 3.8.12
      SmarthomeNG v1.9.0
    • einfacher zu Konfigurieren
    • Docker konformes Verhalten
      Container hängt nicht in endless loop auch wenn smarthomeNG sich verabschiedet hat.
      Docker Logging funktioniert.
    • Vorlagen und Beispiele stehen ausserhalb des Containers zur Verfügung
    • Rechte der Dateien werden passend gesetzt
    Varianten:
    • "slim"
      • Nicht alle Plugin-Abhängigkeiten werden erfüllt. Nicht jedes Plugin wird funktioniert.
      • Größe 270 MB (komprimiert 97 MB)
    • "full"
      • Alle Abhängigkeiten erfüllt.
      • Appletv und hue2 können nicht gleichzeitig aktiviert werden.
      • Größe 721 MB (komprimiert 237 MB)


    Hier ein Beispiel docker-compose.yaml:
    Code:
    version: "3"
    
    networks:
      shng-net:
        internal: true
    
    services:
      shng:
        image: sagl/shng:slim
        restart: "unless-stopped"
        volumes:
          - ./volumes:/mnt
        ports:
          - "2424:2424"
          - "8383:8383"
        networks:
          - shng-net
    
      smartvisu:
        image: php:8.0-apache
        #hostname: <your.hostname.tld>
        depends_on:
         - shng
        restart: unless-stopped
        volumes:
         - ./volumes/html:/var/www/html/
        ports:
          - "80:80"
        networks:
          - shng-net
    Die smartVISU dann in "./volume/html/smartvisu" ablegen und die Treiber-Einstellungen anpassen:
    • Treiber
      • System -> SmarthomeNG (bzw. SmarthomeNG new)
      • Host/IP -> Hostname oder IP des Dockerhost

    Feedback würde mich freuen.

    Gruß
    Sascha
    Angehängte Dateien
    Zuletzt geändert von SaschaG; 21.01.2022, 22:20.

    #2
    Update: Ressource im Post 1 ergänzt.

    Hi,

    Da ich mich mit Git nicht auskenne, hier noch die Ressourcen für das Image (Endung .txt entfernen). Eventuell könnt ihr ja ein paar Anregungen in das offizielle Image übernehmen?
    • "dockerfile" ist als Multistage Dockerfile aufgebaut um möglichst klein zu sein.
    • "entrypoint.sh" bereitet die Umgebung vor (Verzeichnisse erstellen, Datein kopieren, Rechte korrigieren) und startet den "shng_wrapper.sh" als User Smarthome:Smarthome bzw. 1000:1000
    • "shng_wrapper.sh" dient im Wesentlichen dazu, das neustartende "smarthome.py" im Vordergrund zu halten. Damit smarthome.py sich Docker-konform verhält.
    Für Fragen/Anregungen stehe ich gerne zur Verfügung.

    Gruß
    Sascha
    Zuletzt geändert von SaschaG; 21.01.2022, 22:10.

    Kommentar


      #3
      Update: Ressourcen im Post 1 ergänzt.

      Hi,

      Ich habe noch eine Full-Variante erstellt. Folgende Punkte sind mir dabei aufgefallen:
      • Plugin "openzwave" konnte ich nicht übersetzen. Vorgang bricht mit Fehlern ab. -> gelöst
      • Plugins "appletv" und "hue2" haben Abhängigkeitskonflikte. Das führt dazu, dass man nicht beide gleichzeitig aktivieren kann. Einzeln funktionieren sie soweit ich das testen konnte.
      • Die Abhängigkeiten aller anderen Plugins sind im Image erfüllt.
      Gruß
      Sascha
      Zuletzt geändert von SaschaG; 21.01.2022, 22:12.

      Kommentar


        #4
        Das Python openzwave Package funktioniert aktuell nur bis Python 3.8. Bei einer neueren Python Version müsste das zwave Plugin aus der Installation entfernen.

        Welche Abhängigkeitskonflikte hast Du bei appletv und hue2 gefunden? Unter Requirements für appletv steht nur pyatv==0.7.0 drin, das atv Package wird vom hue2 allerdings nicht genutzt.
        Viele Grüße
        Martin

        There is no cloud. It's only someone else's computer.

        Kommentar


          #5
          Hallo Martin,

          Danke für den Hinweis. Habe stundenlang versucht das zwave lauffähig zu bekommen 🤔 Würdest du empfehlen auf Python 3.8 zurückzugehen? Spricht was dagegen?

          Zu deiner Frage. Hier der Prortokollauszug:
          Code:
          The conflict is caused by:
              The user requested zeroconf<=0.26.3
              pyatv 0.7.0 depends on zeroconf>=0.28.0
          und die passenden Auszüge aus der requirements/all.txt
          Code:
          # plugin 'appletv'
          pyatv==0.7.0
          
          # plugin 'hue2'
          zeroconf<=0.26.3
          Wenn beide aktiviert sind beendet sich smarthome.py. Das Problem sollte Dockerunabhängig sein.

          Gruß
          Sascha
          Zuletzt geändert von SaschaG; 19.01.2022, 15:48.

          Kommentar


            #6
            Sascha, schau Dir mal den Thread zur ZWave Unterstützung an. Es gibt ein Maintainer Problem für das Python Paket. Wenn Du also ZWave nutzen willst bleibt IMHO aktuell nur der Weg auf 3.8 zu bleiben oder alternativ hier bei den Issues zu schauen und den Weg zu testen den kdschlosser vorgeschlagen hat.
            Probiere es halt aus. Wenn es funktioniert wäre es gut hier Rückmeldung zu bekommen ...

            Kommentar


              #7
              Ok, die zeroconf Beschränkung im hue2 Plugin habe ich so eingebaut, weil ich kurz vor dem Release nicht mehr ausgiebig die neuern Versionen testen konnte und ab 0.27 sich bei zeroconf erhebliches getan hat.
              Viele Grüße
              Martin

              There is no cloud. It's only someone else's computer.

              Kommentar


                #8
                Hi,

                Zitat von bmx Beitrag anzeigen
                Probiere es halt aus. Wenn es funktioniert wäre es gut hier Rückmeldung zu bekommen ...
                Done. Mit Python 3.8 und zusätzlich "apt-get install openzwave" läuft der Updateprozess sauber durch. Ich experimentiere heute noch mit den verschiedenen flavors und update dann meinen dockerhub. Danke dir.

                @Martin: Verstanden - danke. Ich kann mangels Equipment leider auch nicht mit tests unterstützen.

                Btw. das Plugin GPIO löuft nur auf dem RasPi, richtig?

                Danke und Gruß
                Sascha

                Kommentar


                  #9
                  Ja
                  Viele Grüße
                  Martin

                  There is no cloud. It's only someone else's computer.

                  Kommentar


                    #10
                    Hi,

                    Habe auf Python 3.8.12 umgestellt, damit openzwave funktioniert. Es sind auch noch ein paar Kleinigkeiten in den Docker Ressourcen eingeflossen. Aktuelle Ressourcen finden sich im Post 1 und auf dem DockerHUB.

                    Gruß
                    Sascha

                    Kommentar

                    Lädt...
                    X