Ankündigung

Einklappen
Keine Ankündigung bisher.

Smarthome-ng im DockerContainer

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

    Smarthome-ng im DockerContainer

    Moin,

    ich habe hier im Forum ja vor einer ganzen Weile Smarthome-NG im Docker-Container vorgestellt.
    Das Feedback war sehr überschaubar.

    Warum besteht daran kein Interesse?

    Ich sehe folgende Vorteile:
    • Sobald Docker läuft, läuft der Rest auch.
    • Man hat etwas, was vergleichbar zu einem Raspi Image ist, ist aber Betriebssystem-Unabhängig
    • Man kann mit wenigen Kommandos ein laufendes System -auf jedem Linux- aufsetzen. So kann man z.B. auch für Redundanz sorgen (Konfiguration in die Cloud, Notfall-Rechner an einen Aktor, der ihn booten lässt, wenn der Haupt-Server keinen Herzschlag mehr sendet, konfiguration aus der Cloud holen, fertig
    • Man kann Anfängern ein System geben, welches mit einem einfachen Kommando "docker-compose up" und nur zwei Konfigurationsdateien lauffähig ist und das Licht schalten kann. Inklusive KNXD, Smartvisu und Co
    • Man hat eine stabile Basis, wenn man im Forum Support leisten möchte
    • Man kann schnell zwischen Versionen wechseln (dev, release, ...)

    Als Nachteil sehe ich eine weitere Fehlerquelle und die Kapselung (man kommt nicht so leicht "dran")

    Gruß,
    Hendrik




    #2
    Für meinen Teil liebe ich Docker. Jedoch läuft bei mir SmarthomeNG direkt auf dem Raspi mit dem Busware KNX Modul. Daher kann ichs da nich einsetzten. Alles andere wie Plex, Sonos, OpenVPN läuft jeweils in einem Dockercontainer auf meinem Server.

    Jedoch rate ich jedem dazu, Docker zu verwenden.

    Gruss,

    Stefan
    Sonos

    Kommentar


      #3
      Hallo,
      ich bin momentan am testen und will Eibd, smarthome.py, SmartVisu auf meine neue synology im docker Container bringen. Nur meine Tests bringen mich momentan nicht weiter. Ich sammle mal Infos und poste sie hier.
      gruss
      michael

      Kommentar


        #4
        Verstehe ich nicht.
        nutzt du meine Images?

        Kommentar


          #5
          Zitat von macke384 Beitrag anzeigen
          Hallo,
          ich bin momentan am testen und will Eibd, smarthome.py, SmartVisu auf meine neue synology im docker Container bringen. Nur meine Tests bringen mich momentan nicht weiter. Ich sammle mal Infos und poste sie hier.
          gruss
          michael
          Du musst schon sagen was nicht geht, dann kann man dir auch helfen

          Gruss,

          Stefan
          Sonos

          Kommentar


            #6
            Hallo,
            sorry ich bin erst wieder heute Abend am Rechner.

            Hier mal meine Vorgehensweise:

            Download über Docker Administration der Synology vom Docker HUB henfri/smarthome-ng:latest_dev

            Die zum starten habe ich bei GitHub entnommen da bei Docker Hub nichts zu finden war. Hier wäre es schön, wenn bei Docker Hub die entsprechenden Parameter hinterlegt wären.

            -v /michael/smarthome-ng:/usr/local/smarthome.py

            -p 2424:2424 -p 2323:2323 -p 2788:2788

            Unter /michael/smarthome-ng/.. habe ich die Dateien von smarthome-ng hinterlegt und meine aktuellen Konfigdateien angepasst.

            Nach dem Start lief der Container jetzt. Warum jetzt plötzlich kann ich nicht nachvollziehen.

            Wenn ich KNX-Plugin benutze muss ich doch noch den Port 6720 hinzufügen?

            Ich bin momentan am konfigurieren des open V-Switch der auf der Synology läuft. Über diesen erfolgt wohl das Routing.

            Ich berichte weiter...

            Gruß
            Michael






            Kommentar


              #7
              https://knx-user-forum.de/forum/supp...ation-ratzfatz

              Kommentar


                #8
                Hi Hendrik,

                vielen Dank für deine Arbeit.

                Ich habe deine docker images schon runtergeladen und werde sie die Tage testen.
                Dank der docker toolbox für windows geht das inzwischen auch unter Windows super schnell und einfach.

                Ich denke ich werde danach dann auch mal CentOS 7 auf meinem Futro S900 installieren und dann smarthomeNG mit Hilfe deines Docker Images dort laufen lassen.

                Gruß,
                Henning

                Kommentar


                  #9
                  ich habe tekn0ir/knxd:latest verwendet und konfiguriert -> läuft
                  henfri/smarthome-ng:latest_dev installiert


                  ich würde auch gern knxd + smarthome.py + smartvisu im container laufen lassen.

                  Fragen:
                  ich würde die nötigen Config's/Items/Smartvisu Webpage gern von der DS einbinden und nicht im Docker haben, wie geht das ?
                  wie klappte die Kommunikation zwischen den docker Kontainern ? knxd - smarthome.py ?

                  Kommentar


                    #10
                    Das probiert?
                    https://knx-user-forum.de/forum/supp...ation-ratzfatz

                    Kommentar


                      #11
                      Moin,

                      seid ihr weiter gekommen?
                      > ich würde die nötigen Config's/Items/Smartvisu Webpage gern von der DS einbinden und nicht im Docker haben, wie geht das ?
                      Das ist per Default so vorgesehen. Das Docker-Image soll ja bei dir un mir identisch sein. Somit muss die Konfiguration draußen sein.

                      > wie klappte die Kommunikation zwischen den docker Kontainern ? knxd - smarthome.py ?
                      Das kannst du in meiner Docker-compose.yml sehen. Die startet alle Container in der richtigen Reihenfolge. Die Kommunikation läuft über Ports auf dem Host.
                      Z.B. ist der Port 8383 aus dem sh-ng Container auf den Port 8383 des Host gemappt, so dass man ihn vom PC/Browser über http://host:8383 erreicht. Ähnlich ist Port 2424 auf den Host gemappt, so dass der SmartVisu-Container darauf zugreifen kann. Die SV meint also, das Sh.py auf dem Host läuft und sieht gar nicht, dass es in einem Container liegt.

                      Ich schlage vor, erst einmal meine Anleitung aus obigem Post 1:1 auszuprobieren. Dann habt ihr etwas lauffähiges. Danach ist es ganz einfach, die eigene Konfiguration einzubauen.

                      Gruß,
                      Hendrik

                      Kommentar


                        #12
                        Hi Hendrik,

                        ich migriere gerade parallel von smarthome.py 1.0 auf smarthomeNG 1.2 und von smartVISU 2.7 auf 2.8 und nutze bei der Gelegenheit direkt deine docker container.

                        Grundsätzlich läuft es schon, habe gerade nur noch ein Problem mit dem port binding für den smartvisu socket, evtl. wird da irgendwo etwas doppelt reserviert.

                        Code:
                        2017-01-08 21:04:24 ERROR    connection   Connections  _websocket: problem binding 10.20.0.245:2424 (TCP): [Errno 99] Die angeforderte Adresse kann nicht zugewiesen werden -- connection.py:connect:156
                        Ich musste allerdings den smarthome-ng container noch mal selber mit deinem Dockerfile und einer Änderung bauen:

                        Hintergrund:

                        Code:
                        git clone git://github.com/smarthomeNG/smarthome.git [B]-b release-1.2[/B]
                        funktioniert leider nicht mehr.

                        Der Branch release-1.2 wurde schon nach master gemerged und hat jetzt das tag "v1.2" bekommen,
                        siehe https://github.com/smarthomeNG/smarthome/tags

                        Ich habe das wie folgt in deinem Dockerfile geändert:

                        Code:
                        git clone git://github.com/smarthomeNG/smarthome.git [B]-b v1.2 --single-branch[/B]
                        Ich wollte noch einen Pull Request dafür einreichen, wollte nur erst alles lauffähig haben.
                        Vielleicht kannst du die Änderung ja einbauen und das Image auf docker hub aktualisieren.

                        Ich melde mich wieder wenn ich weiter bin.

                        Gruß,
                        Henning
                        Zuletzt geändert von ratzi82; 09.01.2017, 15:47.

                        Kommentar


                          #13
                          Grundsätzlich läuft es schon, habe gerade nur noch ein Problem mit dem port binding für den smartvisu socket, evtl. wird da irgendwo etwas doppelt reserviert.

                          Code:
                          2017-01-08 21:04:24 ERROR connection Connections _websocket: problem binding 10.20.0.245:2424 (TCP): [Errno 99] Die angeforderte Adresse kann nicht zugewiesen werden -- connection.py:connect:156
                          Wie startest du den Container?
                          Beende bitte mal alle Container (und natürlich auch alle nativen sh.py Instanzen) und starte die Container über docker-compose.
                          Du kannst mein docker-compose.yml nehmen und musst lediglich die Pfade anpassen.

                          Ich musste allerdings den smarthome-ng container noch mal selber mit deinem Dockerfile und einer Änderung bauen:

                          Hintergrund:

                          Code:
                          git clone git://github.com/smarthomeNG/smarthome.git [B]-b release-1.2[/B]
                          funktioniert leider nicht mehr.
                          Danke für den Hinweis. Dennoch bedeutet das doch nicht, dass du den Container neu bauen musst. Du lädst doch mein Image vom Hub runter. Das ist fertig gebaut.
                          Nochmal: Am einfachsten ist es, wenn du einfach 1:1 der o.g. Anleitung folgst.
                          Das Kommando
                          Code:
                          export COMPOSE_API_VERSION=1.18 ; docker-compose up
                          sollte alles starten, nachdem du die docker-compose.yml angepasst hast.

                          Ich wollte noch einen Pull Request dafür einreichen, wollte nur erst alles lauffähig haben.
                          Vielleicht kannst du die Änderung ja einbauen und das Image auf docker hub aktualisieren.
                          Aber wenn nur der TAG geändert wurde, dann brauche ich doch nichts aktualisieren (ich kann das Docker-File aktualisieren, aber das Image kann eigentlich bleiben, wie es ist).

                          Was sagt denn
                          docker ps

                          Gruß,
                          Hendrik

                          Kommentar


                            #14
                            Zitat von henfri Beitrag anzeigen
                            Wie startest du den Container?
                            Beende bitte mal alle Container (und natürlich auch alle nativen sh.py Instanzen) und starte die Container über docker-compose.
                            Du kannst mein docker-compose.yml nehmen und musst lediglich die Pfade anpassen.
                            Ich starte alles über docker-compose up, deine docker-compose.yml habe ich natürlich entsprechend angepasst.

                            Zitat von henfri Beitrag anzeigen
                            Danke für den Hinweis. Dennoch bedeutet das doch nicht, dass du den Container neu bauen musst. Du lädst doch mein Image vom Hub runter. Das ist fertig gebaut.
                            Hmm jetzt habe ich ein Verständnisproblem, dein Image "henfri/smarthome-ng:1.2", von https://hub.docker.com/r/henfri/smarthome-ng/tags/ ist doch das Ergebnis des builds mit dem Dockerfile https://github.com/henfri/docker/blo...-ng/Dockerfile
                            In deinem Dockerfile ist aber der besagte Fehler mit dem Auschecken des Branches den es nicht mehr gibt, dafür wollte ich einen PR einreichen.
                            Um das zu korrigieren müsste also das Image auf Basis des o.g. Dockerfiles aktualisiert und wieder auf docker hub gepusht werden.

                            Ich habe das bei mir lokal gemacht und entsprechend in der docker-compose.yml das aktualisierte Image angegeben.
                            smarthomeNG startet daraufhin auch mit:

                            Code:
                            2017-01-09 21:46:57 WARNING  smarthome    Main         --------------------   Init smarthomeNG 1.2.[B]450[/B].dev   -------------------- -- smarthome.py:__init__:195
                            statt:

                            Code:
                            smarthome-ng_1  | 2017-01-08  14:44:38 WARNING  Main         --------------------   Init smarthomeNG 1.2.[B]442[/B].dev   --------------------
                            Zitat von henfri Beitrag anzeigen
                            Aber wenn nur der TAG geändert wurde, dann brauche ich doch nichts aktualisieren (ich kann das Docker-File aktualisieren, aber das Image kann eigentlich bleiben, wie es ist).
                            siehe oben.

                            Zitat von henfri Beitrag anzeigen
                            Was sagt denn
                            docker ps
                            docker ps

                            Code:
                            CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS                                                                                                                    NAMES
                            87007e4b7c1a        smarthome-ng:latest       "/usr/local/bin/run.s"   59 minutes ago      Up About a minute   0.0.0.0:2323->2323/tcp, 0.0.0.0:2424->2424/tcp, 0.0.0.0:2788->2788/tcp, 0.0.0.0:6720->6720/tcp, 0.0.0.0:8383->8383/tcp   dockerconfigs_smarthome-ng_1
                            1f00563ac2d3        richarvey/nginx-php-fpm   "/start.sh"              33 hours ago        Up About a minute   443/tcp, 0.0.0.0:8080->80/tcp                                                                                            dockerconfigs_smartvisu_1
                            docker port check auf den container liefert:

                            Code:
                            [B]docker port 87007e4b7c1a[/B]
                            2323/tcp -> 0.0.0.0:2323
                            2424/tcp -> 0.0.0.0:2424
                            2788/tcp -> 0.0.0.0:2788
                            6720/tcp -> 0.0.0.0:6720
                            8383/tcp -> 0.0.0.0:8383
                            Sieht soweit erstmal okay aus oder? Muss mal weiter analysieren.

                            Gruß,
                            Henning

                            Kommentar


                              #15
                              Zitat von ratzi82 Beitrag anzeigen
                              Ich starte alles über docker-compose up, deine docker-compose.yml habe ich natürlich entsprechend angepasst.
                              Klingt doch gut. Du kannst die Datei gerne mal posten, dann gucke ich drüber.


                              Hmm jetzt habe ich ein Verständnisproblem, dein Image "henfri/smarthome-ng:1.2", von https://hub.docker.com/r/henfri/smarthome-ng/tags/ ist doch das Ergebnis des builds mit dem Dockerfile https://github.com/henfri/docker/blo...-ng/Dockerfile
                              In deinem Dockerfile ist aber der besagte Fehler mit dem Auschecken des Branches den es nicht mehr gibt, dafür wollte ich einen PR einreichen.
                              Um das zu korrigieren müsste also das Image auf Basis des o.g. Dockerfiles aktualisiert und wieder auf docker hub gepusht werden.
                              Jain.
                              Du kannst das Image, welches ich damals hochgeladen haben nutzen, wie es ist.
                              Dann nutzt du statt 1.2.450 eben 1.2.442. Aber funktionieren wird es.
                              Gerne integriere ich aber einen PR der auf 1.2.450 aktualisiert. Ich selbst verwende eine noch aktuellere dev-Version.


                              docker ps

                              Code:
                              CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
                              87007e4b7c1a smarthome-ng:latest "/usr/local/bin/run.s" 59 minutes ago Up About a minute 0.0.0.0:2323->2323/tcp, 0.0.0.0:2424->2424/tcp, 0.0.0.0:2788->2788/tcp, 0.0.0.0:6720->6720/tcp, 0.0.0.0:8383->8383/tcp dockerconfigs_smarthome-ng_1
                              1f00563ac2d3 richarvey/nginx-php-fpm "/start.sh" 33 hours ago Up About a minute 443/tcp, 0.0.0.0:8080->80/tcp dockerconfigs_smartvisu_1

                              das sieht doch gut aus.
                              Hier ist es so:
                              Code:
                              2941cd649d5e        knxng_smarthome-ng-dev    "/usr/local/bin/run.s"   4 weeks ago         Up 2 days           0.0.0.0:2323->2323/tcp, 0.0.0.0:2424->2424/tcp, 0.0.0.0:2788->2788/tcp, 0.0.0.0:8383->8383/tcp, 0.0.0.0:9010->9010/tcp                                                               knxng_smarthome-ng-dev_1
                              77eb38f33a6c        grafana/grafana:latest    "/run.sh"                4 weeks ago         Up 2 days           0.0.0.0:3000->3000/tcp                                                                                                                                                               knxng_grafana_1
                              7fb179ccc3f3        henfri/knxd:v1            "knxd --error=0 -D -T"   4 weeks ago         Up 2 days                                                                                                                                                                                                knxng_knxd_1
                              de46e8d1759b        henfri/owfs               "/usr/sbin/owserver -"   4 weeks ago         Up 2 days           0.0.0.0:4304->4304/tcp                                                                                                                                                               knxng_owfs_1
                              4cc9ebcd586a        influxdb:latest           "/entrypoint.sh influ"   4 weeks ago         Up 2 days           0.0.0.0:8083->8083/tcp, 0.0.0.0:8086->8086/tcp, 0.0.0.0:8090->8090/tcp                                                                                                               knxng_influxdb_1
                              cfb2fe0fdd03        richarvey/nginx-php-fpm   "/start.sh"              4 weeks ago         Up 2 days           443/tcp, 0.0.0.0:8080->80/tcp                                                                                                                                                        knxng_smartvisu_1
                              Sieht soweit erstmal okay aus oder? Muss mal weiter analysieren.
                              Ja, ich sehe da auch keinen Fehler.

                              Woher (aus welchem log) kam die Fehlermeldung
                              Code:
                               
                               2017-01-08 21:04:24 ERROR connection Connections _websocket: problem binding 10.20.0.245:2424 (TCP): [Errno 99] Die angeforderte Adresse kann nicht zugewiesen werden -- connection.py:connect:156
                              Gruß,
                              Hendrik

                              Kommentar

                              Lädt...
                              X