Comparta la zona horaria del host con el contenedor docker

Estoy intentando sincronizar la zona horaria de un contenedor acoplable con mi host. Mi host está utilizando ISM y el contenedor Docker (usando una image tomcat) usa UTC de forma pnetworkingeterminada. He leído que debemos montar un volumen para compartir la zona horaria del host:

$ docker run -t -i -p 8080:8080 -p 8090:8090 -v /etc/localtime:/etc/localtime:ro tomcat:7.0.69-jre8 /bin/bash 

Después de eso, puedo verificar que la date recuperada sea la misma que la del host:

 $ date Fri Jul 22 13:53:45 IST 2016 

Cuando implemente mi aplicación y trato de actualizar una date, puedo ver que la date 22/07/2016 utiliza la zona horaria de mi browser, que es la misma que la del host donde se está ejecutando el contenedor acoplable. Pero al depurar el lado del server de la aplicación, puedo ver que la date se convierte en la zona horaria UTC. Esto significa que el contenedor Docker realmente no está usando el volumen de host que monté.

¿Me estoy perdiendo algo?

Otra forma en que probé y trabajé fue actualizando la zona horaria en el contenedor de la window acoplable:

 $ dpkg-reconfigure tzdata // Selecting the corresponding options afterwards 

De esta manera puedo ver la misma zona horaria en ambos lados del lado del server y del lado del server de mi aplicación.

Gracias de antemano

Después de depurar y leer sobre la date y la hora, creo que tiene sentido que el server almacene la date y la hora en UTC / GMT, de esa manera es independiente de la zona horaria del cliente cuando se guarda en la database. Por lo tanto, no sería una buena práctica cambiar la zona horaria del server tomcat para que coincida con el host (realmente no debería importar).

El problema que tuve fue que la interfaz usaba la date y la hora (UTC / GMT +1) y la hora se configuró en 00: 00h y cuando llega al final, la date y la hora se convierten en UTC / GMT, lo que hace que 23:00 del día anterior. La capa de persistencia solo almacenaba la date que está mal, ya que perdemos datos (la hora) y cuando intentamos recuperar ese logging del DB obtendremos la date anterior sin el time, por lo que no es el resultado que esperaríamos.

Espero que mi explicación tenga sentido

    Intereting Posts