Ankündigung

Einklappen
Keine Ankündigung bisher.

Edomi im Docker-Container - revised

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

  • starwarsfan
    antwortet
    Hoi Philipp

    Zitat von philipp900 Beitrag anzeigen
    Ich habe mich nun übers Wochenende zum ersten Mal mit Docker befasst und einmal eine Testinstallation installiert.



    Zitat von philipp900 Beitrag anzeigen
    Wenn ich versehentlich den Edomi Container gestoppt oder neugestartet habe, ohne Edomi vorher sauber zu beenden lief es danach nicht mehr.
    Mit "versehentlich" meinst Du aber einen harten Shutdown, oder? Denn eigentlich sollte Edomi sauber gestoppt werden, wenn Du den Container stoppst oder den Host herunter fährst!


    Zitat von philipp900 Beitrag anzeigen
    Entweder startete MySQL oder Apache nicht mehr.
    Könnte man die pid-Files beim starten automatisch löschen? /run/httpd/httpd.pid
    Sollte kein Problem sein. Kann ich im Start-Script einbauen.


    Zitat von philipp900 Beitrag anzeigen
    Wie macht man eigentlich am Besten eine Sicherung seiner Docker-Umgebung?
    Wenn ich das richtig verstanden habe, muss ich ja den Container selbst nicht sichern, sondern nur die Volumes.
    Da dort aber Datenbanken laufen, kann man das nur machen wenn der Container gestoppt ist?
    Das kommt wohl sehr darauf an, was Dein verwendetes Host-System resp. Filesystem kann. Also in Richtung Snapshots und dergleichen...


    Zitat von philipp900 Beitrag anzeigen
    Hatte auch noch Probleme den Alexa-Smarthome-Skill ans Laufen zu bekommen.
    Es fehlt php-curl, sowie die Pfade zu den certs:
    Code:
    yum install php-curl
    ln -s /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem /etc/pki/tls/cacert.pem
    
    in php.ini folgendes eintragen
    curl.cainfo = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
    openssl.cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
    Danke für den Hinweis, eben eingebaut. Siehe hier. Ist aber noch ungetestet, muss das Image erst noch bauen...

    Einen Kommentar schreiben:


  • philipp900
    antwortet
    Ich habe mich nun übers Wochenende zum ersten Mal mit Docker befasst und einmal eine Testinstallation installiert.

    Zitat von givemeone Beitrag anzeigen
    Gestern hatten wir Stromausfall ohne USV, also wurde alles hart beendet. Edomi ist nicht wieder hochgekommen,
    da im Docker noch die MySQL-PID Datei vorhanden war und MySQL deshalb nicht gestartet hat.

    Ein rebuild oder ein maueller Eingriff zum Löschen des PID-Files war nötig, um dem System wieder Leben einzuhauchen.
    Dabei bin ich auch 2mal in dieses Problem gerannt.
    Wenn ich versehentlich den Edomi Container gestoppt oder neugestartet habe, ohne Edomi vorher sauber zu beenden lief es danach nicht mehr.
    Entweder startete MySQL oder Apache nicht mehr.
    Könnte man die pid-Files beim starten automatisch löschen? /run/httpd/httpd.pid

    Wie macht man eigentlich am Besten eine Sicherung seiner Docker-Umgebung?
    Wenn ich das richtig verstanden habe, muss ich ja den Container selbst nicht sichern, sondern nur die Volumes.
    Da dort aber Datenbanken laufen, kann man das nur machen wenn der Container gestoppt ist?

    Wie binde ich eine USV ein und sage Edomi dass es sauber herunterfahren soll befor der ganze Docker Server herunterfährt?

    edit:
    Hatte auch noch Probleme den Alexa-Smarthome-Skill ans Laufen zu bekommen.
    Es fehlt php-curl, sowie die Pfade zu den certs:
    Code:
    yum install php-curl
    ln -s /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem /etc/pki/tls/cacert.pem
    
    in php.ini folgendes eintragen
    curl.cainfo = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
    openssl.cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
    Zuletzt geändert von philipp900; 30.03.2020, 00:21.

    Einen Kommentar schreiben:


  • beauty
    antwortet
    Unbenannt1.JPG Unbenannt2.JPG Unbenannt6.JPG Unbenannt9.JPG Unbenannt7.JPG Unbenannt8.JPG

    Also Edomi Docker 2.01 von dir läuft auf einer Synology 218+
    Die GA Antwortfehler sind momentan normal da die Jal-Aktoren zum update bei MDT sind.

    Edit:
    Kann es evtl. am Medienserver der Synologie liegen? Er nutzt auch Port 50001 aber glaub nur TCP. Hab den Medienserver nun deinstalliert und nach Neustart der Syno läuft Edomi Docker wieder als wäre nix gewesen.
    Ich werde das verhalten nochmls testen ob es reproduzierbar ist.
    Zuletzt geändert von beauty; 28.03.2020, 21:59.

    Einen Kommentar schreiben:


  • beauty
    antwortet
    was im genaueren brauchst?

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Hi

    Zitat von beauty Beitrag anzeigen
    Hast du mir einen Tip an was es liegen könnte?
    Hast Du ein paar Screenshots der Settings? Alles andere ist Kaffeesatzleserei...

    Einen Kommentar schreiben:


  • beauty
    antwortet
    starwarsfan bräuchte mal deine Unterstützung. Seit kurzem hab ich das Problem das wenn ich den Server (Synology) neu starte, komme ich nicht mehr auf die Edomi Oberfläche weder auf die Admin Seite noch auf die Visu. Edomi läuft aber korrekt hoch ohne irgendwelche Fehler. Am System wurde nix geändert. Komplettes Netzwerk neu gestartet und auch diverse Szenarien mit und ohne sämtlichen Netzwerkgeräte.... komm einfach nicht mehr "online". Hatte das jetzt schon öfters und irgendwie doch wieder hinbekommen nach zig neustarts, cache leeren etc. aber diesesmal klappts irgendwie nicht. Hast du mir einen Tip an was es liegen könnte?
    Edomi Docker läuft auf einer Synology 218+ .Selbst wenn ich einen neuen Container anlege komm ich nicht mehr auf Edomi.

    Unbenannt5.JPG

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Hi

    Zitat von Willi will Knx Beitrag anzeigen
    Leider funktioniert das auch irgendwie nicht.
    Dann machst Du irgendetwas falsch resp. nicht so, wie ich oben geschrieben habe. Gerade eben getestet, funktioniert ohne Probleme.

    Ohne genaue Beschreibung, was genau Du gemacht hast, kann ich allerdings auch nicht wirklich helfen. Allein aus der Aussage

    Zitat von Willi will Knx Beitrag anzeigen
    Wenn ich Docker build ausführe folgt diese Fehlermeldung:
    kann ich mir genau gar nichts nehmen...

    Einen Kommentar schreiben:


  • Willi will Knx
    antwortet
    Hi Yves,
    vielen Dank nochmal. Leider funktioniert das auch irgendwie nicht.
    Wenn ich Docker build ausführe folgt diese Fehlermeldung:

    No package socat available.
    Error: Nothing to do

    Also fehlt ggfs noch ein Repositorium? Oder was mache ich falsch?

    Danke schonmal

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Hi

    Zitat von Willi will Knx Beitrag anzeigen
    Für mich ist das schon ein bisschen Rocket Science
    Ok, sieht am Anfang wohl bei jeder neuen Technologie so aus...


    Zitat von Willi will Knx Beitrag anzeigen
    Wenn ich jetzt den laufenden Docker mit Compose als Image speichere, kann ich dieses Image dann im Dockerfile benutzen? From (Name des neuen Image)? Und dann in diesem Fall RUN yum Install Socat?
    Oder muss ich dann vorher noch irgendein Repositorium installieren?
    Also zunächst mal: Mit
    Code:
    docker-compose
    hat das überhaupt nichts zu tun. Compose ist für die Orchestrierung von Containern gedacht und hat nichts mit der Image-Erstellung am Hut. Ich nehme an, Du meinst
    Code:
    docker commit
    !?

    Aber wie auch immer, nein auch das nützt Dir nichts.

    Kochbuch (ungetestet, aus dem Kopf geschrieben):
    1. Datei "Dockerfile" mit folgendem Inhalt anlegen:
      Code:
      	FROM starwarsfan/edomi-docker:amd64-2.01.1
      	RUN yum install -y socat
    2. Dockerimage bauen (den Punkt am Ende nicht vergessen!):
      Code:
      	docker build -t willi/edomi-docker:amd64-2.01.1 .
    3. Docker-Volumes erstellen wenn nicht schon vorhanden:
      Code:
      	sudo docker volume create edomi-backups
      	sudo docker volume create edomi-db
      	sudo docker volume create edomi-installation
    4. Docker-Container wie üblich instanziieren, jetzt zusätzlich noch mit dem socat-Portmapping (Falls das UDP ist, musst Du das noch entsprechend ergänzen):
      Code:
      	sudo docker run \
      	    --name edomi \
      	    --restart=on-failure \
      	    -p 80:80 \
      	    -p 8080:8080 \
      	    -p 3671:3671/udp \
      	    -p 50000:50000/udp \
      	    -p 50001:50001/udp \
      	    -p 22222:22 \
      	    -p 4000:4000 \
      	    -e KNXGATEWAY=192.168.178.4 \
      	    -e KNXACTIVE=true \
      	    -e WEBSOCKETPORT=8080 \
      	    -e HOSTIP=192.168.178.3 \
      	    -v edomi-backups:/var/edomi-backups \
      	    -v edomi-db:/var/lib/mysql \
      	    -v edomi-installation:/usr/local/edomi \
      	    -d \
      	    willi/edomi-docker:amd64-2.01.1
    Damit liegen Deine Daten sauber auf den drei Volumes und Du kannst später wenn notwendig einfach einen neuen Container instanziieren, welcher diese Daten übernimmt.

    Einen Kommentar schreiben:


  • Willi will Knx
    antwortet
    Oder muss ich dann vorher noch irgendein Repositorium installieren?

    Einen Kommentar schreiben:


  • Willi will Knx
    antwortet
    Hi Yves,
    danke schonmal für die Antwort. Wenn ich jetzt den laufenden Docker mit Compose als Image speichere, kann ich dieses Image dann im Dockerfile benutzen? From (Name des neuen Image)? Und dann in diesem Fall RUN yum Install Socat?
    Für mich ist das schon ein bisschen Rocket Science

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Hoi Willi,

    um oben anzufangen: Nein, das muss im Container gemacht werden und nochmal nein, Du kannst nicht nachträglich ein Portmapping hinzufügen.

    Die Idee von Docker ist, dass der Container ein Wegwerf-Artikel ist. Von daher ist jeder Versuch, manuelle Changes zu persistieren früher oder später ein Problem und somit für mich out of Scope. Um Daten in eine neue Instanz zu übernehmen, werden Docker-Volumes verwendet!

    Wenn Du weitere Tools im Container brauchst, dann solltest Du das sauber via Dockerfile und einem eigenen Image machen. Das ist auch kein Rocket-Science, es liegt ja alles auf Github.

    Einen Kommentar schreiben:


  • Willi will Knx
    antwortet
    Hallo nochmal,

    habe weiter recherchiert und bin auf was gestoßen, bin aber unsicher, ob es funktioniert. Wenn ich den laufenden Container mit allen Änderungen als neues Image mit docker compose sichere, kann ich damit eine Portierung erreichen, wenn ich dann einen neuen Container mit dem neuen Image über Docker run erstelle? Funktioniert dann edomi genauso weiter wie bisher?

    Vielleicht gibt es ja mittlerweile noch andere Vorschläge?

    DANKE

    Einen Kommentar schreiben:


  • Willi will Knx
    antwortet
    Hi,
    würde gerne nach dieser Anleitung:

    https://knx-user-forum.de/forum/proj...69#post1484969

    eine Socat Verbindung mit meinem Edomi Docker Container erstellen.
    Muss ich das dann auf dem Host ausführen und den Port in den Container portieren? Wenn ja, gibt es eine Möglichkeit, die Portierung nachträglich durchzuführen, ohne den Container neu aufzusetzen?
    lg und danke
    Willi

    ​​​​

    Einen Kommentar schreiben:


  • pitschr
    antwortet
    TL;DR

    "latest" = Auto-Update
    "2.01.1" = bestimmte Version/Tag

    ---

    Gilt generell und ist nicht auf Edomi-Container bezogen:

    Bei fixe Versionen gibt es eine Betriebsgarantie, d.h. wenn es was funktioniert hat, dann kannst davon ausgehen dass diese Image auch in Zukunft funktioniert. "Latest"-Tag ist sozusagen ein Überraschungsei; es kann funktionieren aber es könnte auch einige Änderungen beinhalten, die nicht mit deinem Programm / deiner Einstellung kompatibel ist (indirekt oder direkt).

    Im Privatbereich ist es eher zu vernachlässigen (=betrifft ja nur dich). Im IT Bereich ist es jedoch fahrlässig. Jedenfalls empfehle ich immer eine fixe Tag-Version zu nehmen um eine böse Überraschung zu vermeiden.

    Einen Kommentar schreiben:

Lädt...
X