docker部署项目,时间差8小时
一、问题描述:new Date()获取时间,在开发环境没问题,但是用docker部署以后时间就会差8小时的问题。二、问题分析:Docker默认时区是格林威治时间,时区为GTM,格林威治是英国伦敦泰晤士河南岸的一个地方,与北京时间差8小时,GTM+8就是北京时间。所以差8小时就是服务的时区有问题。三、解决方案:修改docker服务的时区即可,一般修改docker容器的时间由两种方式:直接修改容器时区
·
一、问题描述:
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"
更多推荐
已为社区贡献7条内容
所有评论(0)