docker部署项目,时间差8小时

"本文介绍了在Docker环境中遇到的时间差8小时的问题,分析了原因在于Docker默认使用的是格林威治时间。为了解决这个问题,提出了通过修改Dockerfile设置时区为亚洲上海的方法,包括添加ENV TZ="Asia/Shanghai"的指令,如果需要,还可以安装tzdata包。这种方法避免了每次部署时手动修改容器时区的繁琐步骤。"
摘要由CSDN通过智能技术生成

一、问题描述:

new Date()获取时间,在开发环境没问题,但是用docker部署以后时间就会差8小时的问题。

二、问题分析:

Docker默认时区是格林威治时间,时区为GTM,格林威治是英国伦敦泰晤士河南岸的一个地方,与北京时间差8小时,GTM+8就是北京时间。所以差8小时就是服务的时区有问题。

三、解决方案:

修改docker服务的时区即可,一般修改docker容器的时间由两种方式:

  • 直接修改容器时区
  • 通过修改Dockerfile来修改镜像,间接修改容器的时区
    对比方案:因为每次部署都会生成新容器,这样的话每次部署都需要修改容器的时区,操作起来很麻烦。
    故,在此介绍修改Dockerfile的方式:
    1.在Dockerfile添加下面语句:
ENV TZ="Asia/Shanghai"

在这里插入图片描述

经我们的环境测试,添加上面一句即可,如果不生效则在上面再加一句:但是这样会在构建的过程下载tzdata包,影响部署时间。

# 安装tzdata
RUN apk add --no-cache tzdata
 # 设置时区
ENV TZ="Asia/Shanghai"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值