陷阱 #1:需要更改的 Jenkins 设置

陷阱 #1:需要更改的 Jenkins 设置

我在 debian squeeze 上安装了 Jenkins-ci。

当前默认时区:'America/Toronto'
现在当地时间为:2012 年 7 月 9 日星期一 16:00:57 EDT。
现在世界时间是:2012 年 7 月 9 日星期一 20:00:57 UTC。

在 /etc/default/rcS 文件中我有:

UTC=否

不幸的是,这不起作用,在詹金斯的系统信息中:

用户.时区 Ec/UTC

我搜索了几个小时..不幸的是找不到解决方法,任何帮助都将不胜感激。

感谢您的时间

答案1

启动 Jenkins 时,您需要将所需的 user.timezone 值作为 JVM 参数传入。Java 命令行将如下所示:

$JAVA_HOME/java -Duser.timezone="America/Toronto" [other JVM parameters] $JENKINS_HOME/jenkins.jar

不幸的是,我不熟悉 Debian 安装,但 JVM 参数应该在 /etc/init.d/jenkins 脚本中或从该脚本引用的属性文件中定义。

答案2

三年后,我发现了几个让这个工作起来的陷阱。所以,我将详细说明公认的答案(这是正确的),并为 CentOS 添加一个完整的答案。


陷阱 #1:需要更改的 Jenkins 设置

当前的詹金斯更改时区的文档说定义user.timezone 或者 org.apache.commons.jelly.tags.fmt.timeZone。但我发现两个都是必要的。果冻的适合詹金斯,一些插件,而用户插件则适用于其他插件。


陷阱 #2:需要更新的操作系统设置

对于美国东部的 CentOS,编辑/etc/sysconfig/jenkins如下:

JENKINS_JAVA_OPTIONS="-Dorg.apache.commons.jelly.tags.fmt.timeZone=America/New_York -Duser.timezone=America/New_York"
JENKINS_ARGS=""

如果将这些-D设置放入JENKINS_ARGS,它将不起作用。


陷阱 3:重新启动

您必须从命令行重新启动整个服务。只需执行 Jenkins 安全重启即可不是足够了。所以:

sudo service jenkins restart

完成所有这些操作后,请检查两个都时区设置与您的 Jenkins 系统信息面板中的设置相匹配:http://jenkins.example.com/systemInfo

答案3

在 Ubuntu 14.04 中,上述解决方案都不适用于我,但我最终运行了以下命令,它会调出一个界面,可以在其中将时区从默认(未选择)更改为更具体的时区:

sudo dpkg-reconfigure tzdata

首先,系统会提示您选择大洲(即美洲、亚洲等),然后选择城市,在我的情况下,选择印度 IST 时区的“亚洲/加尔各答”。

UbuntuTime - 使用命令行

此外,更改时区后,我重新启动了詹金斯:

sudo /etc/init.d/jenkins stop sudo /etc/init.d/jenkins start

然后验证时间是否为当地 IST 时间。在http://<yourservername>/systemInfo用户 bishop 提供的系统属性部分下,对于“user.timezone”属性,我现在看到“Asia/Kolkata”作为其值。

答案4

如果您在 Apache Tomcat 中运行 Jenkins,请将这些添加到 <Apache-Tomcat-Dir>/conf/catalina.properties:

user.timezone=America/New_York
org.apache.commons.jelly.tags.fmt.timeZone=America/New_York

两者都需要。

相关内容