Eu tento executar um contêiner Docker com o mesmo fuso horário que meu host Docker. O fuso horário do anfitrião é CEST
.
Quando Eu corro :
$ dateThu Apr 16 11:04:11 CEST 2020$ docker run -e TZ=CEST debian:buster dateThu Apr 16 09:04:14 CEST 2020
O contêiner está 2 horas atrás do host.
Por outro lado, se eu definir TZ=Europe/Paris
, funciona como esperado :
$ docker run -e TZ=Europe/Paris debian:buster dateThu Apr 16 11:04:22 CEST 2020
Isso é um bug ou estou perdendo alguma coisa?
O fuso horário é definido por padrão e você precisa alterá-lo manualmente.
Existem algumas opções:
Defina-o no Dockerfile:
ENV TZ=America/Los_AngelesRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
Usando volumes para sincronizar com seu host:
volumes:- "/etc/timezone:/etc/timezone:ro"- "/etc/localtime:/etc/localtime:ro"
ou
docker run -v /etc/timezone:/etc/timezone:ro
Por fim, defina-o manualmente, mas se você reiniciar o contêiner, perderá a configuração:
docker run -e TZ=America/New_York ubuntu date
Depois de algumas pesquisas, parece que CEST
não é um valor válido para TZ
variavel. CEST
é apenas uma versão exibível de CET
quando a data atual e verao.
Na verdade, se eu definir TZ
para um valor obviamente inválido, ele dá :
$ TZ=FOO dateFri Apr 17 14:07:56 FOO 2020
Observe também que não tem nada a ver com Docker.
Referência :