使用jib打包docker镜像时区问题

一、前言#

为了方便部署,不去倒腾开发环境,采用了docker的方式.在java这边就使用maven插件jib进行打包,虽然这样是方便很多,但使用的过程中也遇到各种的坑.

二、起因#

在一次开发任务中,后端的时区有问题,比起北京时间少了8个小时.接到反馈,一般的思路是,先检查开发环境的时区, 看是否是UTC时区,检查过后发现,服务器时区正常,数据库时区正常.那么问题就定位到jdbc上,在开发机上测试,时区是正常的.那么问题又回到了服务器时区的问题,但检查了几遍都没发现时区的问题.于是问题定位到docker上.

三、解决#

经过一番的试探,发现只要给jvm加上一个参数就可以完美解决,jib插件配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
   <plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.0.2</version>
<configuration>
<container>
<jvmFlags>
<jvmFlag>-Xms512m</jvmFlag>
<jvmFlag>-Xmx1024m</jvmFlag>
<jvmFlag>-Djava.awt.headless=true</jvmFlag>
<jvmFlag>-Duser.timezone=PRC</jvmFlag> <!-- 这里就是重点了 -->
</jvmFlags>
<ports>
<port>8080</port>
</ports>
<useCurrentTimestamp>true</useCurrentTimestamp>
<mainClass>com.b1809.base.Application</mainClass>
</container>
<from>
<image>openjdk:8u181-jdk-stretch</image>
</from>
<to>
<image>b1809:b-dev</image>
</to>
<allowInsecureRegistries>true</allowInsecureRegistries>
<extraDirectory>${project.basedir}/src/main/jib</extraDirectory>
</configuration>
</plugin>
感谢您的阅读,本文由 Onew 版权所有。如若转载,请注明出处:Onew(https://onew.me/2019/03/26/java-jib-timezone/
使用postgresql 中文分词
暴力破解aspose.word.19.3