Docker容器日志添加时间戳仅显示UTC而非UTC+2问题求助
问题解决方法
1 构建脚本时间变量错误修复
你当前脚本中date命令添加了-u参数,该参数会强制忽略指定的TZ时区配置,输出UTC时间,这是你导出的current_date时区不符合要求的直接原因,直接去掉-u参数即可:
- export current_date=$(TZ=":Europe/Paris" date +"%m-%d-%Y_%H:%M:%S") - echo $current_date - docker push $CI_IMAGE_COMMIT_TAG
2 容器运行时日志时区配置
如果你需要容器运行过程中输出的日志默认使用UTC+2时区,仅在构建阶段定义临时变量无效,需要额外配置容器时区:
方案1:修改Dockerfile写入时区配置
- Debian/Ubuntu类基础镜像:
RUN apt-get update && apt-get install -y tzdata \ && ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime \ && echo "Europe/Paris" > /etc/timezone
- Alpine类基础镜像:
RUN apk add --no-cache tzdata \ && ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime \ && echo "Europe/Paris" > /etc/timezone
方案2:启动容器时动态指定时区
不需要修改镜像,启动容器时传入TZ环境变量即可:
docker run -e TZ="Europe/Paris" <你的镜像名称>
内容的提问来源于stack exchange,提问作者tamo007
相关产品推荐
相关产品推荐

