Alpine镜像设置时区的方式
2种方式
- 使用
tzdata
包, 有个大坑- 使用
alpine-conf
包,推荐
方式1: tzdata
使用tzdata, 也是网上推荐最多的解决办法
FROM python:3.8-alpine
# 镜像加速, 添加alpine apk源(中科大)
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
# 解决时区问题
ENV TZ=Asia/Shanghai
RUN apk add --no-cache tzdata \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& apk del tzdata
WORKDIR /workspace
这里是有问题的,最后删除tzdata之后,时区设置是无效的
填坑
**方式1:**安装完成后不删除 tzdata
FROM python:3.8-alpine
# 镜像加速, 添加alpine apk源(中科大)
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
# 解决时区问题
ENV TZ=Asia/Shanghai
RUN apk add --no-cache tzdata \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
WORKDIR /workspace
构建镜像
最后的镜像大小: 44.5 MB
**方式2:**不设置环境变量
FROM python:3.8-alpine
# 镜像加速, 添加alpine apk源(中科大)
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
# 解决时区问题
RUN apk add --no-cache tzdata \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& apk del tzdata
WORKDIR /workspace
这种方式删除tzdata之后,包的体积为:43.2MB
方式2: alpine-conf
使用alpine-conf
FROM python:3.8-alpine
# 镜像加速, 添加alpine apk源(中科大)
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
# 解决时区问题
ENV TZ=Asia/Shanghai
RUN apk add alpine-conf && \
/sbin/setup-timezone -z Asia/Shanghai && \
apk del alpine-conf
WORKDIR /workspace
构建后的镜像大小:45.5 MB, 体积比第一种方式大了一点,但是这个方式是官方推荐的,坑少,按照完成后可以直接删除这个包
进入容器,查看时间是否为CST时间