System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone','Asia/Shanghai')

 

 

 

永久修改以容器化方式运行的Jenkins系统时间

 

 

 

用dockerfile修改官方镜像

加上环境变量ENV TZ=Asia/Shanghai

或者

修改容器启动脚本/usr/local/bin/jenkins.sh,给java传入启动参数:
-Duser.timezone=Asia/Shanghai

-Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai

docker run的时候修改

运行docker run的时候加上下面三种选项中的一种: 

-e JAVA_OPTS='-Duser.timezone=Asia/Shanghai' 

-e TZ='Asia/Shanghai'

-e JAVA_OPTS='-Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai'

或者

docker run 命令最后添加上面的JAVA_OPTS参数中的一种,这是直接传入给容器内 /usr/local/bin/jenkins.sh(ENTRYPOINT) 的参数,比如:

-Duser.timezone=Asia/Shanghai

或者

用bind mounts把修改好的jenkins.sh替换进容器内文件 /usr/local/bin/jenkins.sh 。注意:由于容器内是uid 1000的用户运行这个脚本,记得加上执行权限:chmod o+x  jenkins.sh

3.如果启动容器的时候没有加参数,想要永久修改时区

可以在$JENKINS_HOME目录下创建文件init.groovy文件,或者创建目录$JENKINS_HOME/init.groovy.d/,并在这个目录下面创建任何以.groovy结尾的文件,在任意一个上述文件内填入下面内容即可,这些文件内容会在jenkins每次启动后加载。

System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')