Zeitzone in Docker Container umstellen

jaerc

Benutzer
Mitglied seit
11. Mrz 2013
Beiträge
87
Punkte für Reaktionen
3
Punkte
8
Ich habe den logitechmedia server Docker Container auf meiner DSM 720+ installiert.
Den Container lmscommunity-logitechmediaserver latest habe ich installiert und konfiguriert.

Nun stimmt die Zeitzone in diesem Container aber nicht, die Uhrzeit ist falsch.

Ich habe mich via shell mit sudo docker exec -it lmscommunity-logitechmediaserver1 /bin/bash zuerst auf den Container verbunden.

Nun habe ich den Befehl dpkg-reconfigure tzdata in der Annahme verwendet um anschliessend die korrekte Zeitzone (in meinem Fall "Europe/Zurich") konfigurieren zu können.

Bei der Eingabe von dpkg-reconfigure tzdata erhalte ich aber nur folgenden Output:

Current default time zone: 'Etc/UTC'
Local time is now: Mon Mar 29 19:49:36 UTC 2021.
Universal Time is now: Mon Mar 29 19:49:36 UTC 2021.

Die aktuelle Uhrzeit ist aber 21:49:36 als 2 Stunden später.

Alternativ habe ich noch versucht in den Container Einstellungen eine Umgebungsvariable (Variable TZ, Wert "Europe/Zurich") anzulegen. Die Zeit im Container hat sich aber nicht geändert, ist also immer 2 Stunden zurückversetzt.

Wie kann ich die Zeitzone resp die korrekte Uhrzeit im Container einstellen?

Besten Dank für eure Hilfe,
Gruss Chris
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Wie hast du denn den Container gestartet? Über das WebUI oder über die Konsole?

https://hub.docker.com/r/lmscommunity/logitechmediaserver
docker run -it \
-v "<somewhere>":"/config":rw \
-v "<somewhere>":"/music":ro \
-v "<somewhere>":"/playlist":rw \
-v "/etc/localtime":"/etc/localtime":ro \
-v "/etc/timezone":"/etc/timezone":ro \

-p 9000:9000/tcp \
-p 9090:9090/tcp \
-p 3483:3483/tcp \
-p 3483:3483/udp \
lmscommunity/logitechmediaserver

Mit den markierten Parametern sollte es klappen...

Und noch ein kleiner Hinweis auf der Seite:

Docker on Synology​

  • use /etc/TZ instead of /etc/timezone

  • you'll likely have to use another port than 9000. Synology traditionally used port 9002 to run Logitech Media Server on. See above note about mapping ports to make sure this is working as expected!
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.476
Punkte für Reaktionen
359
Punkte
103
Zwar ist tzdata im Image vorhanden, aber es ist darauf ausgelegt das /etc/localtime und /etc/timezone vom Host in den Container gemapped wird.

Eine Nachträgliche Änderung der Zeitzone kann für einen gestarteten Prozess (=die Hauptanwendung im Container) greifen, muss aber nicht.
Die Syno-Logs werden afaik immer nur in UTC angezeigt.

Versuch mal, ob Du mit folgenden Befehlen via exec zum Erfolg führen:
Code:
cp /usr/share/zoneinfo/$TZ /etc/localtime
echo $TZ > /etc/timezone
ich gehe davon aus, dass Du TZ als Env mitgegeben hast, oder vorher als Variable deklarierst.

Wenn das zum Erfolg führt, gibt es mehrere Wege zum Ziel:
1. Git-Projekt auschecken, die Zeilen von oben in "start-container.sh" vor Zeile 13 einfügen und dann das Image neu bauen
2. Nur die Datei start-container.sh von git ziehen oder aus dem Container rauskopieren (docker cp ${container id}:/usr/bin/start-container .), die Zeilen hinzufügen und dann als "Volume" die local modifzierte Datei wieder nach /usr/bin/start-container mappen.

Update: natürlich noch besser, wenn das von luddi hinhaut, dann lohnt sicher der Aufwand natürlich nicht da selbst dran rumzuschrauben.
 

jaerc

Benutzer
Mitglied seit
11. Mrz 2013
Beiträge
87
Punkte für Reaktionen
3
Punkte
8
@ haydibe besten dank. der cp befehl hat geholfen. Hinweis: Wenn der Wert in der Umgebungsvariable "Europe/Zurich" mit "" angegeben wird bekommen ich beim cp Befehl eine direcotry not found Fehlermeldung. Nach entfernen der "" hat alles perfekt geklappt.

Besten Dank auch an luddi für deinen Input.
 

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.101
Punkte für Reaktionen
253
Punkte
129
Habe heute mal bei meinen ganzen Docker Containern die Zeitzone aktualisiert.
Es war bei verschiedensten Anwendungen immer gleich zu setzen, es hat gereicht via docker GUI die Umgebungsvariable TZ mit zB. Europe/Vienna zu befüllen. Ist natürlich keine Garantie, dass alle Images das unterstützen, aber oftmals klappt das wenn die Basis das schon unterstützt.
(bei mir ging es mit gitlab, postgres, grafana, telegraf, influxdb und wildfly)

Im Container ist dann CET als Zeitzone.

Was leider damit noch immer nicht klappt, ist ein Problem von docker. Die Protokolle vom Container (bzw. docker logs <container>) sind immer in UTC. Kann im Moment nicht verändert werden. Siehe zB. hier
 

DS-Michael

Benutzer
Mitglied seit
11. Aug 2021
Beiträge
120
Punkte für Reaktionen
35
Punkte
28
Hallo, ich habe auch das Problem mit der Zeit im Logitech Media Server und Docker.
Bin neu im DSM und verstehe eure Erklärungen nur teilweise.
Wie genau kann ich im Docker die Zeitzone ändern?
 

DS-Michael

Benutzer
Mitglied seit
11. Aug 2021
Beiträge
120
Punkte für Reaktionen
35
Punkte
28
Hallo, die einfachste Lösung die ich gefunden habe:
Bei der Installation vom lmscommunity-logitechmediaserver1 muss bei den erweiterten Einstellungen die Variable TZ z.B. Europe/Vienna ergänzt werden. (DSM 7.1) Dann zeigt die Boom wieder die richtige Zeit an.
LMS.jpg
 

Jereem

Benutzer
Mitglied seit
26. Mrz 2023
Beiträge
1
Punkte für Reaktionen
0
Punkte
1
Hallo Michael,
Das habe sogar ich verstanden. Und es hat geklappt, herzlichen Dank,
Thomas
 

Starflashbully

Benutzer
Mitglied seit
06. Mrz 2020
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen!
Ich bin auf die Lösung hier gestoßen, habe aber nicht verstanden, wie ich meinen LMS, der schon besteht hinsichtlich der Zeitzone korrigiert bekomme. Kann mir da jemand helfen? Vielen Dank :)
 

Starflashbully

Benutzer
Mitglied seit
06. Mrz 2020
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Ah, der Beitrag von @DS-Michael ist so zu verstehen, dass man das auch bei einem laufenden LMS noch ändern kann? Das wäre ja fein. Ist zwar noch ein DSM 6.2, aber da sollte es ja ähnlich sein dann? Liebe Grüße!
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
13.944
Punkte für Reaktionen
4.802
Punkte
499
Ja, mit dem Container Manager / Docker unter 6.2 kannst du die Variable ändern. Ist zwar nicht vorgesehen, funktioniert aber.
 

Starflashbully

Benutzer
Mitglied seit
06. Mrz 2020
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Hi @plang.pl , ich versuche gerade die Einstellungen zu ändern, aber irgendwie finde ich die Möglichkeit gar nicht... Umgebungsvariablen sehe ich, aber wo kann ich welche hinzufügen?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
13.944
Punkte für Reaktionen
4.802
Punkte
499
Auf "Hinzufügen" drücken, so wie oben im Screenshot zu sehen ist. Der Container muss dafür vorher angehalten werden.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat