apline镜像时区的问题

189 阅读1分钟

TZ环境变量

关于apline镜像时区指定Asia/Shanghai,但仍是UTC时间的问题。

为了解决时区的问题,在国外的服务deployment.yaml增加如下配置

env:
  - name: TZ
    value: Etc/UTC

在国内的服务deployment.yaml增加如下配置

env:
  - name: TZ
    value: Asia/Shanghai

遇到问题:

在国内服务的容器内时区变成UTC时间了。为什么?去掉TZ环境变量后恢复成CST。

经过排查发现,原来在制作镜像时删除了tzdata导致的。

ENV TZ Asia/Shanghai 
RUN apk add tzdata && cp /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone && apk del tzdata

解决办法:

  • 不删除tzdata
ENV TZ Asia/Shanghai 
RUN apk add tzdata && cp /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone
  • 指定setup-timezone
ENV TZ Asia/Shanghai 
RUN apk add alpine-conf && /sbin/setup-timezone -z Asia/Shanghai &&  apk del alpine-conf
  • 不设置TZ环境变量
RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  && echo Asia/Shanghai > /etc/timezone && apk del tzdata