2016-07-22 2 views
0

Я пытаюсь синхронизировать часовой пояс контейнера докера с моим хостом. Мой хост использует ISM, а контейнер докеров (с использованием изображения tomcat) по умолчанию использует UTC. Я читал, что мы должны установить объем, чтобы разделить часовой пояс хоста:Доля часового пояса чата с контейнером докера

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

После того, что я могу проверить, что дата извлекается такое же, как хозяин:

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

Когда я разверните мое приложение, и я пытаюсь обновить дату, я вижу, что дата 22/07/2016 использует часовой пояс браузера, который совпадает с хостом, на котором запущен контейнер докеров. Но отлаживая серверную часть приложения, я вижу, что дата конвертируется в часовой пояс UTC. Это означает, что контейнер-докер не использует хост-объем, который я смонтировал.

Я ничего не пропустил?

Другой способ, которым я пытался и сделал работа обновление часового пояса в контейнере Docker:

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

Таким образом, я могу увидеть тот же часовой пояс в обоих: на стороне клиента и на стороне сервера моего приложения.

Благодаря передовой

+0

Это звучит, как вы перечислили два способа, которые работают с Докер и что ваше приложение является частью, которая имеет проблемы? Не уверен, как мы можем отлаживать ваше приложение, так как у нас нет никаких подробностей о том, что это такое. – BMitch

+0

Я сделал список двух способов, которые должны работать, и да, приложение, похоже, имеет проблемы. Приложение представляет собой приложение GWT, которое я развернул в контейнере докеров Tomcat, и я открыл порты хосту, чтобы иметь доступ к приложению и отлаживать приложение (как вы можете видеть порты 8080 и 8090 в команде докера). Я подозреваю, что что-то происходит с jdk, который был снабжен контейнером докеры tomcat. – despadina

+0

Возможный дубликат [Как изменить часовой пояс сервера Tomcat 7?] (Http://stackoverflow.com/questions/28777322/how-to-change-tomcat-7s-server-timezone) – BMitch

ответ

1

После отладки и чтения о дате и времени, я думаю, что это имеет смысл, что бэкенд хранит дату и время в UTC/GMT, таким образом, не зависит от часового пояса клиента, когда он сохраняется в БД. Таким образом, было бы неплохо изменить часовой пояс сервера tomcat для соответствия хосту (это не имеет большого значения).

Проблема, с которой я столкнулся, заключалась в использовании даты и времени (UTC/GMT +1), и время было установлено на 00:00, а когда оно достигло заднего конца, дата и время преобразуются в UTC/GMT, что делает его 23:00 предыдущего дня. Уровень персистентности просто сохранял дату, когда это неправильно, когда мы теряем данные (время), и когда мы пытаемся извлечь эту запись из БД, мы получим предыдущую дату без времени, поэтому это не результат, которого мы ожидаем.

Я надеюсь, что мое объяснение имеет смысл

Смежные вопросы