8

This used to work to set the timezone. I have a container on Alpine 3.9.4 where it worked:

RUN apk add --no-cache tzdata ENV TZ America/Chicago RUN apk del tzdata 

I'm now creating a Docker container with Alpine Linux v3.10.3, and it doesn't work anymore. A user suggested that I need to copy to /etc/localtime:

RUN apk add --no-cache tzdata ENV TZ America/Chicago RUN cp /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone RUN apk del tzdata 

Neither of these work if tzdata is removed. However, they work if tzdata is not removed. Why is this?

Related Question

3
  • 1
    Interesting. It doesn't work on alpine:latest. As soon as I remove tzdata, the container decides it's going to be UTC. Commented Apr 14, 2020 at 20:43
  • This question was the answer to my problem. :) Crazy that this single StackExchange post seems to be the only place on the Internet that mentions this behavior. Commented Apr 28, 2021 at 12:50
  • @sizzlebeam Glad to help! Commented Apr 28, 2021 at 19:12

3 Answers 3

2

The package tzdata contains information about the time zones. It tells software that the zone CEST is UTC+02:00, and when it's in use.

When you remove the tzdata package all you have left is a variable with a string.

0

You can try the setup-timezone script from alpine-conf package for that scenario.

0

So I copy the /etc/localtime back to /usr/share/zoneinfo/$TZ and it works fine for me. here is my solution:

ENV TZ America/Chicago RUN apk add --no-cache --virtual .build-tz tzdata;\ cp /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone;\ apk del .build-tz;\ echo /usr/share/zoneinfo/$TZ | cut -d'/' -f-5 | xargs mkdir -p;\ cp /etc/localtime /usr/share/zoneinfo/$TZ 

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.