导航
导航
文章目录
  1. 一、前言
  2. 二、起因
  3. 三、解决

使用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>
支持一下
扫一扫,请我吃颗大白兔奶糖
  • 支付宝扫一扫