接手一个项目,发现数据生成日期和当前日期不一致,考虑几个可能
1.代码存在问题
2.服务器时间不正确
3.docker容器时间不正确
首先过一遍代码,获取当前系统时间无误,排除第一个原因;
进入服务器,执行命令
date
确认时间与当前一致,排除第二个原因;
查看当前容器时间
docker exec -it 当前容器id /bin/sh
/usr/local/myapp # date
对比确认时间不一致,确定是docker时间问题,寻找解决方法,参考这位同学的方法:https://www.cnblogs.com/effortsing/p/10060547.html
编辑好dockerfile后执行报错:'/usr/share/zoneinfo/Asia/Shanghai' 路径找不到,无法进行cp操作
排查原因无果,考虑其它方法
在docker启动脚本上加上以下代码
#通过匹配docker镜像名获取镜像id docker_find=$(docker ps -q --filter name=^/镜像名) #将服务器的时区写入docker的本地时区文件里 docker cp /usr/share/zoneinfo/Asia/Shanghai $docker_find:/etc/localtime
重新启动后查询容器时间
获取成功!!