Salut, c'est @chan_kaku Cette fois, un problème est survenu lorsque l'outil interne a été converti en Docker, je vais donc vous présenter le problème, les contre-mesures prises cette fois et les points difficiles.
Cette fois, j'ai eu un problème avec une application Java.
Le problème était, à un moment donné, le processus de rendre l'heure à rendre persistante dans la base de données l'heure actuelle avec new Date ()
.
Jusqu'à présent, je n'utilisais pas Docker et dépendais du fuseau horaire du serveur hôte, j'ai donc pu prendre du temps avec JST et il n'y avait rien de mal à cela.
Cependant, après avoir converti cet outil en Docker, il y avait un problème en raison du décalage de l'heure actuelle de cette `nouvelle date () '.
En premier lieu, je ne savais pas grand-chose sur Docker et j'ai deviné qu'il y avait un problème avec le code côté Java.
Cependant, comme mentionné ci-dessus, l'heure actuelle a été prise comme «nouvelle date ()», donc cette estimation était erronée.
La prochaine estimation était le fuseau horaire du serveur hôte. Cependant, lorsque j'ai appuyé sur la commande date
, elle était affichée comme JST
, donc cela a également été manqué.
Je n'ai plus de suppositions possibles, alors quand j'ai demandé à des personnes familières avec Docker, j'ai eu l'information selon laquelle il semble qu'il y ait du temps à l'intérieur de Docker, et que cette heure peut être éteinte.
Donc, je suis entré dans Docker avec la commande suivante et j'ai vérifié le fuseau horaire dans le conteneur Docker de la même manière.
docker run -t -i (Image du menu fixe cible) /bin/bash → démarrer le docker et aller à l'intérieur
# date
Ici, c'était JST
comme avant.
Quand je déplorais que toutes les mesures aient été épuisées ici, une voix d'une certaine personne a dit ...
"Regardez le contenu de / etc / timezone
dans Docker ~"
Croyant en cette personne, je suis entré dans Docker et j'ai regardé / etc / timezone
, et j'ai trouvé que c'était ʻUTC. J'ai donc modifié le Dockerfile pour changer
/ etc / timezone en ʻAsia / Tokyo
comme suit
ENV TZ="Asia/Tokyo"
RUN echo $TZ > /etc/timezone
//Les descriptions autres que celles liées au fuseau horaire sont omises
La raison pour laquelle je l'ai changé avec echo cette fois est que le fuseau horaire du système horaire devait être JST en raison des exigences de l'outil, j'ai donc décidé que cela devrait être décrit dans le Dockerfile.
J'ai eu du mal à divers endroits car je n'avais pas beaucoup de connaissances sur Docker, mais je suis content de l'avoir résolu pour le moment! Nous attendons Masakari, qui dit que ces gens sont plus intelligents.
Recommended Posts