Intento ejecutar un contenedor Docker con la misma zona horaria que mi host Docker. La zona horaria del host es CEST
.
Cuando corro :
$ dateThu Apr 16 11:04:11 CEST 2020$ docker run -e TZ=CEST debian:buster dateThu Apr 16 09:04:14 CEST 2020
El contenedor está 2 horas detrás del anfitrión.
Por otro lado, si configuro TZ=Europe/Paris
funciona como se esperaba :
$ docker run -e TZ=Europe/Paris debian:buster dateThu Apr 16 11:04:22 CEST 2020
¿Es un error o me estoy perdiendo algo?
La zona horaria está configurada de forma predeterminada y debe cambiarla manualmente.
Hay algunas opciones:
Configúrelo en el Dockerfile:
ENV TZ=America/Los_AngelesRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
Uso de volúmenes para sincronizar con el host:
volumes:- "/etc/timezone:/etc/timezone:ro"- "/etc/localtime:/etc/localtime:ro"
o
docker run -v /etc/timezone:/etc/timezone:ro
Finalmente, configúrelo manualmente, pero si reinicia el contenedor, perderá la configuración:
docker run -e TZ=America/New_York ubuntu date
Después de algunas investigaciones, parece que CEST
no es un valor válido para TZ
variable de entorno. CEST
es solo una versión visualizable de CET
cuando la fecha actual ser verano.
De hecho, si configuro TZ
a un valor obviamente inválido, da :
$ TZ=FOO dateFri Apr 17 14:07:56 FOO 2020
También tenga en cuenta que no tiene nada que ver con Docker.
Referencia :