设置容器时间和本地时间相同

参考 : 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了。

你可能感兴趣的:(设置容器时间和本地时间相同)