Wenn es also nur zu Testzwecken (nicht zur Entwicklung) ist, ist es besser, ein Docker-Image « unter realen Bedingungen » zu starten, anstatt dies in einer Entwicklungsumgebung zu tun (was die Realität nicht wirklich widerspiegelt und nicht unbedingt einfach umzusetzen ist).
Um ein Docker-Image zu starten, ist der Prozess derselbe wie auf der Installationsseite von Gladys über Docker beschrieben (Installation avec Docker | Gladys Assistant), nämlich einen Docker-Container auf der Maschine zu starten, auf der du Gladys testen möchtest (am nächsten an dem, was du in der Produktion hast, z.B. ein Raspberry Pi).
Der einzige Unterschied besteht darin, dass der Name des Bildes in docker run geändert werden muss (um ein von einem anderen Entwickler erstelltes Bild zu starten) und Volumes verwendet werden, die deiner Testumgebung entsprechen.
Lassen Sie uns den docker run-Befehl von der Website analysieren:
docker run -d \
--log-opt max-size=10m \
--restart=always \
--privileged \
--network=host \
--name gladys \
-e NODE_ENV=production \
-e SERVER_PORT=80 \
-e TZ=Europe/Paris \
-e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production.db \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/gladysassistant:/var/lib/gladysassistant \
-v /dev:/dev \
-v /run/udev:/run/udev:ro \
gladysassistant/gladys:v4
Hier siehst du, dass wir am Ende angeben, dass wir einen Container aus dem Bild gladysassistant/gladys:v4 starten wollen, das ist das « offizielle » Bild, das wir verteilen ![]()
Im Fall eines Test-Szenarios, z.B. im Fall des PR RFLink, hat @ProtZ ein Docker-Bild auf seinem persönlichen Docker Hub-Konto geteilt, und das Bild heißt ngeissel/gladys:rflinkdev
Wenn du ein RFLink-Testbild auf deinem Pi starten möchtest, kann ich dir den folgenden Befehl vorschlagen:
docker run -d \
--log-opt max-size=10m \
--restart=always \
--privileged \
--network=host \
--name gladys-test-rflink \
-e NODE_ENV=production \
-e SERVER_PORT=8001 \
-e TZ=Europe/Paris \
-e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production.db \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/gladysassistant_test_rflink:/var/lib/gladysassistant \
-v /dev:/dev \
-v /run/udev:/run/udev:ro \
ngeissel/gladys:rflinkdev
Du wirst mehrere Änderungen bemerken:
- Ich habe den Namen des Containers in « gladys-test-rflink » geändert, um Konflikte zu vermeiden, falls du bereits einen Gladys laufen hast
- Ich habe den Port geändert, auf dem Gladys hört, auf 8001, um Konflikte zu vermeiden, falls du bereits einen Gladys laufen hast
- Ich habe das Volume der Gladys-Daten geändert (Verzeichnis, in dem die Gladys-Daten auf der Festplatte gemountet werden), hier um « /var/lib/gladysassistant_test_rflink » zu setzen (Wenn du also deinen Pi nach dem Ausführen dieser Datei bereinigen möchtest, musst du nur dieses Verzeichnis löschen)
- Ich habe das Bild in « ngeissel/gladys:rflinkdev » geändert
Sobald dein Container läuft, kannst du auf Gladys zugreifen, indem du « IP_RASPBERRY_PI:8001 » eingibst.
Wenn du diesen Container stoppen möchtest:
docker stop gladys-test-rflink
Wenn du diesen Container löschen möchtest:
docker rm gladys-test-rflink
Wenn du eine neue Version des Bildes abrufen möchtest
(falls der Entwickler mit der Integration fortgeschritten ist):
docker pull ngeissel/gladys:rflinkdev
Es ist zu beachten, dass ein Docker-Container unveränderlich ist: Wenn du also ein neues Bild gezogen hast, musst du den Container stoppen, den Container löschen und dann einen neuen Container docker run starten ![]()
Fazit
Hier ist ein Beispiel im Fall von RFLink, aber du kannst den Namen des Bildes ändern, wie du möchtest.
Es ist vielleicht Chinesisch, wenn du Docker nicht kennst, aber meiner Meinung nach lohnt es sich, die Grundlagen von Docker zu lesen, wenn du nicht viel davon kennst ![]()
Der Sonoff Ewelink ist bereits gemergt und in Gladys 4 seit einiger Zeit verfügbar! ![]()