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

mbomb007
  • 185
  • 1
  • 7

3 Answers3

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.

vidarlo
  • 6,654
  • 2
  • 18
  • 31
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
DAI
  • 1
  • 1