NEU! UPGRADE IP 11 verfügbar!
NEU! LICHTWIDGET - DPT 7.600 - Logik Manager Update - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/B9MUEJj2

Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074

Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117

NEU! Ausführliches Video Tutorial zur VISU
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

Erster Container

Allgemeine Themen & Feature Requests für APPs und Docker-Funktionen
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

murelli146
Reactions:
Beiträge: 90
Registriert: Mi Jan 16, 2019 9:21 pm
Hat sich bedankt: 13 Mal
Danksagung erhalten: 50 Mal

#31

Beitrag von murelli146 »

Könnte mir bitte jemand einen schupser geben.

Hab debien als container installiert und meine bin hinzugefügt.

Jetzt will ich einen deamon automatisch starten lassen. Doch der systemctl bzw. systemd ist im Docker nicht verfügbar.
Bevor ich anfange systemd im Docker zu installieren frage ich lieber.

Wie geht man mit starten von deamons im Docker um?

Schöne Grüße
Gernot
Schöne Grüße
Gernot
_______________________________________________________
TWS 2600 ID:276 , VPN offen, Reboot nach Rücksprache erlaubt

MiniMaxV2
Reactions:
Beiträge: 274
Registriert: Sa Jan 12, 2019 8:41 pm
Wohnort: Bremen
Hat sich bedankt: 342 Mal
Danksagung erhalten: 151 Mal

#32

Beitrag von MiniMaxV2 »

Im Normalfall baust du dir für sowas einen eigenen Container. Basis ist dein Debian, packst deine Binaries dazu mit Copy und gibst einen Run Befehl vor, der nach dem Start ausgeführt wird (gerne macht man da ein eigenes Skript was dann gestartet wird). Grade der Copy-Step ist sinnvoll, da der Container selbst im flüchtigen Speicher lebt, wenn es um ein Update oder Rebuild geht. Docker hat da ein etwas anderes Konzept als "echte" virtuelle Maschinen.

Also ich würde mir an deiner Stelle ein Dockerfile zusammen schustern (mit drei Zeilen From, Copy, Cmd bzw. Entrypoint) und fertig :)
Zuletzt geändert von MiniMaxV2 am So Feb 03, 2019 10:29 pm, insgesamt 1-mal geändert.
LG
Hans Martin
timberwolf413 (950Q) - VPN offen - reboot erlaubt / timberwolf610 (950Q) - VPN offen - reboot erlaubt

James_T_Kirk
Reactions:
Beiträge: 309
Registriert: Do Sep 13, 2018 10:54 pm
Hat sich bedankt: 99 Mal
Danksagung erhalten: 120 Mal

#33

Beitrag von James_T_Kirk »

systemd ist bei docker unüblich und unnötig. Es reicht den jeweiligen Prozess am Ende des Dockerfiles mit dem ENTRYPOINT Befehl zu starten. Jeder Dienst ein eigener Container.
TWS 950Q 435 verkauft, umgestiegen auf Home Assistant

murelli146
Reactions:
Beiträge: 90
Registriert: Mi Jan 16, 2019 9:21 pm
Hat sich bedankt: 13 Mal
Danksagung erhalten: 50 Mal

#34

Beitrag von murelli146 »

OK Danke für eure Hilfe!

Hab jetzt den Container am laufen. Macht schon Spaß :lol:

Mein Dockerfile was funktioniert:

Code: Alles auswählen

FROM debian
COPY root / 
RUN /usr/bin/knxdmxd -d -c /etc/knxdmxd.conf -u ip:192.168.1.62 -p /var/run/knxdmxd.pid
Wenn ich statt RUN, ENTRYPOINT eingebe funktioniert es nicht mehr. Werde ich mich noch auseinandersetzen wo der unterschied lie :oops: gt.

Wie überprüfe ich den dienst ? top gibt es auch nicht, jetzt kann ich nur nachsehen ob das Pidfile vorhanden ist.

Wie kann ich den dienst neu starten wenn er beendet wird bzw. Fehler hat (wie bei systemd "restart=on-error")?

Oder ist das so schon ein sauberes Image. Worauf soll ich achten? :confusion-scratchheadyellow:
Schöne Grüße
Gernot
_______________________________________________________
TWS 2600 ID:276 , VPN offen, Reboot nach Rücksprache erlaubt

James_T_Kirk
Reactions:
Beiträge: 309
Registriert: Do Sep 13, 2018 10:54 pm
Hat sich bedankt: 99 Mal
Danksagung erhalten: 120 Mal

#35

Beitrag von James_T_Kirk »

Also der RUN Befehl wird beim build des Containers (docker build) ausgeführt. Der ENTRYPOINT Befehl beim Start des Containers (docker run xxx).

Wie hast du dein Dockerfile erstellt und ausgeführt?
TWS 950Q 435 verkauft, umgestiegen auf Home Assistant

murelli146
Reactions:
Beiträge: 90
Registriert: Mi Jan 16, 2019 9:21 pm
Hat sich bedankt: 13 Mal
Danksagung erhalten: 50 Mal

#36

Beitrag von murelli146 »

Mit folgenden Befehlen.

Code: Alles auswählen

docker build -t knxdmxd-beta .
docker run -it knxdmxd-beta
Container funktioniert und startet den deamon, auch wenn ich den Container über Portainer ändere.
Schöne Grüße
Gernot
_______________________________________________________
TWS 2600 ID:276 , VPN offen, Reboot nach Rücksprache erlaubt

MiniMaxV2
Reactions:
Beiträge: 274
Registriert: Sa Jan 12, 2019 8:41 pm
Wohnort: Bremen
Hat sich bedankt: 342 Mal
Danksagung erhalten: 151 Mal

#37

Beitrag von MiniMaxV2 »

Es macht Sinn, dass es funktioniert -jede Zeile im Dockerfile erzeugt einen intermediate Container, auf dem der Nachfolgende Befehl aufbaut. In dem Intermediate nach run, läuft ein Demon. Da das der letzte Befehl ist, hat der fertige Container auch den laufenden Demon. Nicht schön und auch so nicht gedacht, geht aber.

Nimm lieber folgendes als letzte Zeile:

Code: Alles auswählen

ENTRYPOINT["/usr/bin/knxdmxd","-d","-c","/etc/knxdmxd.conf","-u","ip:192.168.1.62","-p","/var/run/knxdmxd.pi"]
Wie du siehst ziemlich lang und unhandlich. Darum hat man gerne ein Run Skript welches über Entrypoint (ENTRYPOINT[".\run.sh"] aufgerufen wird und dann die Parameter zusammenbaut aus z.b. Umgebungsvariablen (bei dir IP wäre ein Kandidat).
LG
Hans Martin
timberwolf413 (950Q) - VPN offen - reboot erlaubt / timberwolf610 (950Q) - VPN offen - reboot erlaubt

murelli146
Reactions:
Beiträge: 90
Registriert: Mi Jan 16, 2019 9:21 pm
Hat sich bedankt: 13 Mal
Danksagung erhalten: 50 Mal

#38

Beitrag von murelli146 »

Danke langsam lichtet sich der Nebel ;)
Schöne Grüße
Gernot
_______________________________________________________
TWS 2600 ID:276 , VPN offen, Reboot nach Rücksprache erlaubt

murelli146
Reactions:
Beiträge: 90
Registriert: Mi Jan 16, 2019 9:21 pm
Hat sich bedankt: 13 Mal
Danksagung erhalten: 50 Mal

#39

Beitrag von murelli146 »

Würde doch nochmal Hilfe benötigen.
Habe mich mit dem entrypoint gespielt doch es funktioniert einfach nicht.
Mit RUN läuft der Container, mit entrypoint beendet er sich gleich wieder nach dem der Deamon gestartet wurde (exit 0 oder so).
Nach ca. 50 versuchen ist mir vorgekommen dass es am Anfang funktioniert hat. Habe mich aber am Anfang mit der Imageerstellung vertan. (statt Image, Container erstellt)
So nochmal von vorne, mache ich bei der Erstellung etwas falsch?
1. Dockerfile anpassen:

Code: Alles auswählen

FROM debian
COPY root / 
ENTRYPOINT ["/usr/bin/knxdmxd","-d","-c","/etc/knxdmxd.conf","-u","ip:192.1.1.62","-p","/var/run/knxdmxd.pid"]
 
2. Image erstellen

Code: Alles auswählen

docker build -t knxdmxdocker .
3. Container erstellen

Code: Alles auswählen

docker run -it knxdmxdocker
Wenn es nicht funktioniert wieder zu Punkt 1. Das Image sollte so doch auch aktualisiert werden?

Ab und zu habe ich über Portainer die Container gelöscht und auch das Image.

Schöne Grüße
Gernot
Schöne Grüße
Gernot
_______________________________________________________
TWS 2600 ID:276 , VPN offen, Reboot nach Rücksprache erlaubt

MiniMaxV2
Reactions:
Beiträge: 274
Registriert: Sa Jan 12, 2019 8:41 pm
Wohnort: Bremen
Hat sich bedankt: 342 Mal
Danksagung erhalten: 151 Mal

#40

Beitrag von MiniMaxV2 »

Nimm mal statt dem Flag -it den -d Flag.

Code: Alles auswählen

docker run -d knxdmxd
-d steht für detached. Dann läuft das ganze im Hintergrund. Kannst dann mit docker ps prüfen.
Dein -it Flag macht eine Interaktive Konsole auf. Brauchst du diese?
LG
Hans Martin
timberwolf413 (950Q) - VPN offen - reboot erlaubt / timberwolf610 (950Q) - VPN offen - reboot erlaubt
Antworten

Zurück zu „Allgemeine Themen & Feature Requests“