• 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    这里是有问题的,最后删除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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    构建镜像

    最后的镜像大小: 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    这种方式删除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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    构建后的镜像大小:45.5 MB, 体积比第一种方式大了一点,但是这个方式是官方推荐的,坑少,按照完成后可以直接删除这个包

    进入容器,查看时间是否为CST时间

    查看容器内时间

  • 相关阅读:
    【算法基础】动态规划
    [附源码]java毕业设计高校贫困生认定系统
    Docker仓库harbor
    小程序固定头部实现:van-nav-bar插件
    “零”代码改动,静态编译让太乙Stable Diffusion推理速度翻倍
    定了,JDK 19 功能集冻结,JDK官方终于支持支持协程了
    SAP ALV颜色代码对应颜色(整理)
    在Win11上部署ChatGLM2-6B详细步骤--(上)准备工作
    google colab上让 python 视觉化套件 matplotlib 显示中文
    前后端数据交互设计到的跨域问题
  • 原文地址:https://blog.csdn.net/yueguangMaNong/article/details/126137474