修改各Linux发行版本时区为上海

Debian系统

在系统命令行使用

1
2
echo "Asia/Shanghai" > /etc/timezone
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

在Dockerfile使用

1
RUN echo "Asia/Shanghai" > /etc/timezone && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

在Docker compose的配置文件里面进行配置,添加一个环境变量

1
TZ=Asia/Shanghai

Ubuntu 20.04

在Dockerfile使用

1
2
ENV DEBIAN_FRONTEND=noninteractive TZ="Asia/Shanghai"
RUN apt-get update && apt-get install -y tzdata

这里需要注意两点:

  1. 需要设置DEBIAN_FRONTEND=noninteractive,否则在安装tzdata的时候会有交互的选择,会阻止后面的命令运行
  2. 设置环境变量TZ

Apline

1
2
3
4
5
RUN apk --update add tzdata && \
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asia/Shanghai" > /etc/timezone && \
    apk del tzdata && \
    rm -rf /var/cache/apk/*

CentOS

在系统命令行使用

1
2
echo "Asia/Shanghai" > /etc/timezone
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

在Dockerfile使用

1
RUN echo "Asia/Shanghai" > /etc/timezone && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

其实跟Debian系统的配置一样的