Después de un mes que ha pasado volando, volvemos con otro artículo sobre docker. Y es que por poco que hayas “jugado” con contenedores, te habrás topado con el problema de la hora dentro del propio contenedor. Veamos pues cómo solucionarlo!!!

TimeZone incorrecto

Normalmente el problema viene porque el contenedor viene con un timezone que no es correcto (vamos, que no es Europe/Madrid).

Podemos ejecutar los siguientes comandos para comprobar el timezone:

docker exec -it <container_id> cat /etc/timezone

o la hora:

docker exec -it <container_id> date

Ahora bien, una vez comprobado que el timezone no es el que necesitamos, vamos a ver cómo configurarlo en una máquina Debian:

echo Europe/Madrid > /etc/timezone && \
dpkg-reconfigure -f noninteractive tzdata

 

Además, para flexibilizar al máximo el timezone elegido (en el caso de que publiquemos, por ejemplo, nuestro contenedor), podemos establecerlo a partir de una variable de entorno que definamos dentro de nuestro Dockerfile. De esta forma podremos elegir el timezone de nuestro contenedor al arrancarlo:

docker run -e "DOCKER_TIMEZONE=Europe/Stockholm" <docker_image_name>

o incluso desde docker-compose:

datexample:
  image:<docker_image_name>
  environment:
    - DOCKER_TIMEZONE=Europe/Madrid

 

En el futuro veremos cómo sincronizar la hora de nuestros contenedores  mediante el uso de NTP tanto en máquinas Debian como Alpine.

Anuncios