使用jib插件打包docker镜像确实方便,不需要在本地安装docker环境。但是今天在打包部署后,发现获取的时间总是不对。一度以为是代码的问题。本地跑确实又没问题,只是个简单的获取系统时间的代码按理说不应该是代码的问题。于是想到是否是服务器的时区问题,但是去查看服务器时区后发现,服务器的时区并没有问题。找了好久始终没找到问题的根源。当时心态也有点急躁。于是静下来,仔细分析,思考到底是哪里的问题。发现docker容器的嫌疑最大。排查后发现是jvm虚拟机中的时区不正确导致的。解决方案见下。只需要在pom文件中配置jvm虚拟机的时区属性即可。
<!--容器相关的属性-->
<container>
<!-- springboot项目的入口类 -->
<mainClass>com.runir.fund.portfolio.PortfolioApplication</mainClass>
<!--jvm内存参数-->
<jvmFlags>
<jvmFlag>-Duser.timezone=GMT+08</jvmFlag>
</jvmFlags>
<ports>
<port>${port}</port>
</ports>
</container>