docker+jenkins的构建历史记录(Build History)时间不正确

Posted linyouyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker+jenkins的构建历史记录(Build History)时间不正确相关的知识,希望对你有一定的参考价值。

1、分别查看宿主机时间和容器时间

宿主机时间

[email protected]:/# date
Fri Jan 11 14:17:53 CST 2019

容器时间

[[email protected]001 ~]# docker exec -ti 87986863838b /bin/bash
[email protected]:/# date                                                                                                                    
Fri May 11 06:17:55 UTC 2019

发现两者的时间相差两个小时

宿主机采用了CST时区,CST应该是指(China Shanghai Time,东八区时间)
容器采用了UTC时区,UTC应该是指(Coordinated Universal Time,标准时间)

2、统一两者的时区有下面几种方法
1)共享主机的localtime
创建容器的时候指定启动参数,挂载localtime文件到容器内,保证两者所采用的时区是一致的。

docker run -ti -d --name my-nginx -v /etc/localtime:/etc/localtime:ro  docker.io/nginx  /bin/bash

2)复制主机的localtime

[[email protected]002 ~]# docker cp /etc/localtime fcaad17f146a:/etc/

此时容器的时间已经设置成和宿主机相同的时间

 

因为jenkins是java开发,java环境读取的时间是根据/etc/timezone的

查看一下这个文件的内容

[email protected]:/# cat /etc/timezone 
Etc/UTC

因此需要把UTC改为CST,或者在UTC的基础上加8小时

[email protected]:/# sed -i s/UTC/UTC+8/ /etc/timezone
[email protected]:/# cat /etc/timezone 
Etc/UTC+8

回到jenkins去构建发现时间已经正常




以上是关于docker+jenkins的构建历史记录(Build History)时间不正确的主要内容,如果未能解决你的问题,请参考以下文章

如何清除我的 Jenkins/Hudson 构建历史?

Jenkins基础篇19-Jenkins工程设置-保留最近构建记录和个数

何小伟:Jenkins 为什么要丢弃旧的构建?

Jenkins配置Git push后自动构建

Jenkins 更改构建历史时间戳

jenkins构建docker镜像