despadina
despadina

Reputation: 101

Share host timezone with docker container

I'm trying to sync the timezone of a docker container with my host. My host is using ISM and the docker container (using a tomcat image) uses UTC by default. I've read that we should mount a volume to share the timezone of the host:

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

After that I can check that the date retrieved is the same as the host:

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

When I deploy my application and I try to update a date, I can see that the date 22/07/2016 is using my browser timezone, which is the same as the host where the docker container is running. But debbuging the server side of the app I can see that the date is converted into UTC timezone. This means that the docker container is not really using the host volume I did mount.

Am I missing anything?

Another way I tried and did work was updating the timezone in the docker container:

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

This way I can see the same timezone in both: client side and server side of my app.

Upvotes: 1

Views: 4482

Answers (1)

despadina
despadina

Reputation: 101

After debugging and reading about date and time, I think it makes sense that the backend stores the date and time in UTC/GMT, that way is independent of the client's timezone when it's saved in the DB. So it wouldn't be a good practise to change the tomcat server timezone to match the host (it shouldn't really matter).

The issue I had was the front end was using date and time (UTC/GMT +1) and the time was set to 00:00h and when it reaches the back end, the date and time is converted to UTC/GMT which makes it 23:00 of the previous day. The persistence layer was just storing the date which it's wrong as we lose data (the time) and when we try to retrieve that record from the DB we will get the previous date without the time so it's not the result we would expect.

I hope my explanation makes sense

Upvotes: 2

Related Questions