Где контейнеры Docker получают информацию о времени? Я создал несколько контейнеров из базового Ubuntu: надежного образа, и когда я запускаю его и запрашиваю «дату», я получаю время UTC.
Некоторое время я обходил это, делая следующее в моем Dockerfile:
RUN sudo echo "America/Los_Angeles" > /etc/timezone
Однако почему-то перестал работать. Поиск в Интернете, я увидел ниже предложенный:
docker run -v /etc/timezone:/etc/timezone [image-name]
Оба эти метода правильно устанавливают часовой пояс!
$ cat /etc/timezone
America/Los_Angeles
$ date
Tue Apr 14 23:46:51 UTC 2015
Кто-нибудь знает, что дает?
-v /etc/localtime:/etc/localtime:ro
(CentOS) рода работ. Внутри контейнера в командной строке date возвращает дату в формате ожидаемого часового пояса. НО Дженкинс, бегущий в контейнере, думает, что часовой пояс - UTC. Почему? / etc / localtime является символической ссылкой на ../usr/share/zoneinfo/UTC во встроенном контейнере. Содержимое файла UTC в контейнере теперь является новым часовым поясом. Но jenkins (и, возможно, другое программное обеспечение на основе Java) используют имя символической ссылки, которая все еще "UTC". В поисках решения. , ,
Alpine
, вам нужноtzdata
сначала установить , см. Здесь github.com/gliderlabs/docker-alpine/issues/136