docker - jenkins的时区设置问题

 元辉5678_915 发布于 2022-10-26 14:08

在jenkins中配置的任务,从任务log看,发现时间都是按照格林威治时间显示的,jenkins的系统管理中的“系统信息”里,user.timezone也是Etc/UTC。

我的这个jenkins环境是这样的:jenkins server运行在docker container中,host是ubuntu14.04,container使用的镜像也是基于ubuntu14.04的。最初,host和container的时间也是格林威治时间,我通过"sudo cp /usr/share/zoneinfo/PRC /etc/localtime"重新配置了系统的时区,host和container的时间显示就为北京时间了。但是jenkins server里显示的时间依然是格林威治时间,即使是我将container删掉,重新创建,也还是这样。

不知如何才能将jenkins中的时间调整为北京时间?谢谢。

5 个回答
  • 我是ubuntu 12.04,通过jenkins deb包安装的。

    修改方法如下:

    sudo sed -i -r 's#JAVA_ARGS="(.*)"#JAVA_ARGS="-Duser.timezone=Asia/Shanghai \1"#g' /etc/default/jenkins
    sudo service jenkins restart

    or

    sudo sed -i -r 's#JAVA_ARGS="(.*)"#JAVA_ARGS="-Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai \1"#g' /etc/default/jenkins
    sudo service jenkins restart

    自从google被封,大家都很少看官方文档了,官方wiki

    2022-11-12 01:39 回答
  • 提交另外一种方法,
    1.cd /etc
    2.rm localtime
    3.localtime -> /usr/share/zoneinfo/Asia/Shanghai
    4.页面重启jenkins server,http://jenkins-server:8080/restart

    2022-11-12 01:39 回答
  • docker run ... -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai
    

    https://github.com/jenkinsci/docker/issues/45

    2022-11-12 01:39 回答
  • 楼上别装逼,坑啊,我还以为真的是一直没解决,差点误导我。
    根本原因是jenkins用的是jvm的时间,所以会导致跟后面修改的系统时间,还是不一样,照下面的做法就可以了。我已经解决了。

    Linux下jvm时区设置
    在一个精简的Linux安装上jre,发现所有的java程序获取的时间都不是系统时间。后来发现原来是时区不对。java程序获取的时间都是GMT时间,而系统是北京时间,应该是GMT+8,刚好相差8小时。网上搜了好多资料,只有两种方法:
    1、在程序中使用java的函数设定时区。
    2、在启动java程序时加参数-Duser.timezone=GMT+8

    不过总不能去修改每个程序的源码去设定时区吧。也不想在每个java程序启动的时候加参数,太麻烦了。就没有一劳永逸的办法了?

    开始以为jre应该会有某个配置文件保存了时区的配置,结果一无所获。不过总有jre总要去系统中获取时区配置吧。于是开始想是不是java用的是linux中的系统配置文件?于是到linux系统下/etc/sysconfig目录看时区配置。发现缺少了clock这个用于设置时区的文件。把别的linux系统中的这个文件拷过来一试,ok。java程序的时间和系统时间一致了。看来jre是从/etc/sysconfig/clock这个文件中获取时区信息的。

    附clock文件内容:

    ZONE="Asia/Shanghai"
    UTC=false
    ARC=false

    ZONE -- 时区
    UTC -- 表明时钟设置为UTC。
    ARC -- 仅用于alpha表明使用ARC。

    2022-11-12 01:39 回答
  • 这个问题一直没解决。不过因为我是在脚本里需要使用北京时间,因此用了TZ='PRC' date命令来保存到变量显示,只做到了规避这个问题。

    2022-11-12 01:39 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有