Jenkins 系统时间时区异常

发表于 2023-02-20

问题

安装完 Jenkins 后发现显示时间的时区不对,并且经过检查服务器和容器内时区都是正确的。

原因

Jenkins 系统有自己的时区设置,不和服务器同步的时区。

异常的时间

解决方法

配置 Jenkins 设置项(已验证)

将 Jenkins 的时区设置为 Asia/Shanghai,然后保存就可以了。

Jenkins 时区设置项

启动参数(未验证)

在启动容器的时候,采用 -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai 指定 Jenkins 的时区参数。

docker run -d -uroot -p 18080:8080 \
  --restart always \
  --name jenkins \
  -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
  -v /files/jenkins/application/apache-maven-3.8.5:/opt/maven \
  -v /files/jenkins/application/jdk1.8.0_221:/opt/jdk8 \
  -v /files/jenkins/jenkins:/bitnami/jenkins \
  -v /files/jenkins/jenkins_home:/var/jenkins_home \
  -v /etc/localtime:/etc/localtime\
  jenkins/jenkins

执行 Jenkins 命令

打开 Jenkins 的【系统管理】 ==> 【脚本命令行】,在命令框中输入一下命令。

我使用该方法时是临时生效,重启 Jenkins 就会失效,没有深究其原因。

# 设置时间时区为:亚洲上海
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')

正确的时间

Jenkins 时区设置项