参考 : http://www.cnblogs.com/z-belief/p/6484171.html
1. adn的报表上线后总是在查询一天的日志时发现前后8小时错乱
2. 好久以后才反应过来,报表的后台运行在容器上——容器中的时区从未修改过——一直是UTC时区!
dexec 进去一看,date显示IDE果然是UTC时间!
3. 立马在Dockerfile加上如下一句:
RUN rm /etc/localtime && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4. push和deploy后继续dexec,date一下,时间是GMT+8了。
5. 然后报表时间还是不对!!花了好久时间,还是没有办法,最后报表后台设置时间直接使用了带时区的方式!
6. 过后,终于看到这篇文章:
http://www.cnblogs.com/z-belief/p/6484171.html
7. adn被提到操作记录时间仍然是UTC时间后,开始使用上面博客提到的方式——个人觉得也比较可信。
8. 首先在程序配置文件中添加java属性:
java.property.user.timezone=GMT+8
然后修改start.sh,在程序运行前加上 :
export TZ=Asia/Shanghai
最后修改bash profile:
export TZ=Asia/Shanghai
注意:bash profile挂载到了容器中并会被source,所以做了上面所有操作,尽全力确保一次重新push就可以解决时间问题
最近试了下 直接在Dockerfile中加上一句 ENV TZ=Asia/Shanghai,时区问题就OK了。