Skąd kontenery Docker uzyskują informacje o czasie? Stworzyłem kilka kontenerów z podstawowego ubuntu: zaufanego obrazu, a kiedy go uruchamiam i żądam „daty”, otrzymuję czas UTC.
Przez jakiś czas omijałem to, wykonując następujące czynności w moim pliku Dockerfile:
RUN sudo echo "America/Los_Angeles" > /etc/timezone
Jednak z jakiegoś powodu przestał działać. Przeszukując online zobaczyłem poniższe sugestie:
docker run -v /etc/timezone:/etc/timezone [image-name]
Obie te metody poprawnie ustawiają strefę czasową!
$ cat /etc/timezone
America/Los_Angeles
$ date
Tue Apr 14 23:46:51 UTC 2015
Czy ktoś wie, co daje?
-v /etc/localtime:/etc/localtime:ro
rodzaju prac (CentOS). W wierszu polecenia data kontenera zwraca datę w oczekiwanym formacie strefy czasowej. ALE jenkins działający w kontenerze uważa, że strefa czasowa to UTC. Dlaczego? / etc / localtime to dowiązanie symboliczne do ../usr/share/zoneinfo/UTC w wbudowanym kontenerze. Zawartość pliku UTC w kontenerze jest teraz nową strefą czasową. Ale Jenkins (i być może inne oprogramowanie oparte na Javie) używa nazwy dowiązania symbolicznego, które wciąż jest „UTC”. Poszukiwanie rozwiązania. . .
Alpine
, musisztzdata
najpierw zainstalować , patrz tutaj github.com/gliderlabs/docker-alpine/issues/136