[JAVA] L'heure ne va pas avec l'application lancée sur le conteneur Docker

introduction

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.

problème

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 () '.

Devinez la cause

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.

Contre-mesures

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.

À la fin

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

L'heure ne va pas avec l'application lancée sur le conteneur Docker
[Docker] Comment créer lorsque le code source est monté en liaison sur le conteneur
Mettre à jour l'image du conteneur avec KUSANAGI s'exécute sur Docker
Surveillez le conteneur Docker et le processus SystemD sur le même hôte avec Zabbix sur Ubuntu.
Affichez l'application ROS sur Docker avec l'interface graphique du côté hôte
[Docker] Supprimer uniquement le volume associé à un conteneur spécifique
Application Web construite avec docker (1)
Il est maintenant temps de commencer avec l'API Stream
Lorsque l'accès demandé à la ressource est refusé lors de la transmission avec Docker
Création d'un environnement de développement pour Ruby on Rails à l'aide de Docker + VSCode (Remote Container)
Programmation avec ruby (en route)
WordPress avec Docker Compose sur CentOS 8
Exécuter PureScript sur un conteneur Docker
[Linux] Démarrer le conteneur Apache avec Docker
Créer un environnement de débogage sur un conteneur - Créer un environnement de développement local pour les didacticiels Rails avec Docker -
Commencer par installer Docker sur EC2 et exécuter Yellowfin dans un conteneur
Mettez Zabbix dans Ubuntu avec Docker et surveillez Docker sur le même hôte
Essayez Alfresco 6.0 sur Windows (Docker sera introduit en même temps)
Lancer un conteneur docker sur EC2 (mémorandum personnel)
Exécutez NordVPN dans le conteneur Ubuntu Docker (Windows)
L'histoire de la mise à jour du Docker Container de Sonar Qube
Grattage avec marionnettiste à Nuxt sur Docker.
Comment le site Web s'affiche à l'écran
Communiquer entre Gitlab et Gitlab Runner lancé avec Docker
[Docker] Démarrez le conteneur dès que possible
Déployez l'application avec VPC + EC2 + Docker.
Créer un environnement avec Docker sur AWS
Exécutez Ubuntu + ROS avec Docker sur Mac
Explication jusqu'à ce que la demande originale soit terminée
Une note rapide sur l'utilisation de jshell avec l'image Docker officielle du JDK
Solution lorsque la connexion à la base de données n'est pas possible avec un nouveau conteneur car le port est affecté au conteneur docker existant
Comment créer un serveur Jenkins avec un conteneur Docker sur CentOS 7 de VirtualBox et accéder au serveur Jenkins à partir d'un PC local