项目场景:
初次使用docker部署项目,发现日志的前缀时间永远比现实时间早八小时
问题描述
在docker中部署时区就会默认与东八区差八小时,虽然不影响功能,但是看日志,还需要自己心内自己加上八小时,才能得到具体的时间,看多了就会很痛苦,因此就要想办法解决这个问题。
原因分析:
首先我们要考虑的是为什么会出现这种情况,归根结底是因为docker的容器的环境隔离。
通过阿里官方对于docker容器的特性定义来看
docker具有隔离性,他自己内部自成体系,这也就解释了,为什么在liunx系统内的时区没问题,但是docker的时区有问题的原因。
知道了原因,我们也就知道了怎么解决这个问题,我们只需要把字体塞到每个容器内就可以了。
理论成立,实践开始。
解决方案:
修改dockerfile文件
把下面这段命令添加在基础镜像的命令下面即可
# RUN:容器构建时需要运行的命令
ENV TZ="Asia/Shanghai"
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
结尾
重新部署之后就会发现问题已经解决了