A lot of selfhosted containers instructions contain volume mounts like:

docker run ...
  -v /etc/timezone:/etc/timezone:ro \
  -v /etc/localtime:/etc/localtime:ro \
  ...

but all the times I tried to skip those mounts everything seemed to work perfectly.

Are those mounts only necessary in specific cases?

PS:

Bonus question: other containers instructions say to define the TZ variable. Is that only needed when one wants a container to use a different timezone than the host?

  • mbirth
    link
    fedilink
    English
    arrow-up
    34
    ·
    14 days ago

    If the container instructions say to set the TZ variable, this means that they bring all the necessary timezone information (for all timezones around the world) with them inside the container. For Alpine Linux, this would be the 1.5 MB (uncompressed) tzdata package.

    If you are instructed to link to those files on the host system, the container usually doesn’t come with the tzdata package and the only way for it to use your timezone is to use the information from the host system by mounting the 2 files.

    However, if you don’t mount these files, the container will usually run in UTC and won’t observe DST. So, all the times in log files and everything regarding time will be in UTC.