Hallo, das ist @chan_kaku Dieses Mal trat ein Problem auf, als das interne Tool auf Docker konvertiert wurde. Daher werde ich das Problem, die diesmal ergriffenen Gegenmaßnahmen und die schwierigen Punkte vorstellen.
Diesmal hatte ich ein Problem mit einer Java-Anwendung. Das Problem war irgendwann der Prozess, die Zeit, die in der DB dauerhaft gemacht werden soll, auf die aktuelle Zeit mit "new Date ()" zu setzen. Bis jetzt habe ich Docker nicht verwendet und war abhängig von der Zeitzone des Host-Servers, sodass ich mir Zeit für JST nehmen konnte und daran nichts auszusetzen war. Nach der Konvertierung dieses Tools in Docker gab es jedoch das Problem, dass die aktuelle Uhrzeit an diesem "neuen Datum ()" verschoben wurde.
Erstens wusste ich nicht viel über Docker und vermutete, dass es ein Problem mit dem Code auf der Java-Seite gab. Wie oben erwähnt, wurde die aktuelle Zeit jedoch als "neues Datum ()" angenommen, sodass diese Vermutung falsch war. Die nächste Vermutung war die Zeitzone des Hostservers. Als ich jedoch den Befehl "Datum" drückte, wurde er als "JST" angezeigt, sodass dies auch übersehen wurde. Ich habe keine möglichen Vermutungen mehr. Als ich Leute fragte, die mit Docker vertraut sind, erhielt ich die Information, dass in Docker einige Zeit zu sein scheint und dass diese Zeit möglicherweise nicht stimmt. Also habe ich Docker mit dem folgenden Befehl eingegeben und die Zeitzone im Docker-Container auf die gleiche Weise überprüft.
docker run -t -i (Docker-Zielbild) /bin/Bash → Docker starten und hineingehen
# date
Hier war es "JST" wie zuvor.
Als ich beklagte, dass alle Maßnahmen hier erschöpft waren, sagte eine Stimme einer bestimmten Person ... "Sehen Sie sich den Inhalt von" / etc / timezone "in Docker ~ an." Ich glaubte an diese Person, ging in Docker und schaute auf "/ etc / timezone" und stellte fest, dass dies "UTC" war. Also habe ich die Docker-Datei so geändert, dass "/ etc / timezone" wie folgt zu "Asia / Tokyo" wird.
ENV TZ="Asia/Tokyo"
RUN echo $TZ > /etc/timezone
//Andere Beschreibungen als zeitzonenbezogene werden weggelassen
Der Grund, warum ich es dieses Mal mit Echo geändert habe, ist, dass die Zeitzone des Zeitsystems aufgrund der Anforderungen des Tools JST sein musste. Daher habe ich beschlossen, dass dies in der Docker-Datei beschrieben werden sollte.
Ich hatte es an verschiedenen Orten schwer, weil ich nicht viel über Docker wusste, aber ich bin froh, dass ich es vorerst gelöst habe! Wir warten auf Masakari, der sagt, dass diese Leute schlauer sind.
Recommended Posts