Docker container tempo 2 horas atrás quando TZ = CEST

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 :