Python alpine镜像设置时区解决日志时间错误问题

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时间

查看容器内时间

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值