1. 程式人生 > >docker+jenkins的構建歷史記錄(Build History)時間不正確

docker+jenkins的構建歷史記錄(Build History)時間不正確

nat coord 基礎 history run style 統一 ash 方法

1、分別查看宿主機時間和容器時間

宿主機時間

root@fcaad17f146a:/# date
Fri Jan 11 14:17:53 CST 2019

容器時間

[root@001 ~]# docker exec -ti 87986863838b /bin/bash
root@fcaad17f146a:/# 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

[root@002 ~]# docker cp /etc/localtime fcaad17f146a:/etc/

此時容器的時間已經設置成和宿主機相同的時間

因為jenkins是java開發,java環境讀取的時間是根據/etc/timezone的

查看一下這個文件的內容

root@fcaad17f146a:/# cat /etc/timezone 
Etc/UTC

因此需要把UTC改為CST,或者在UTC的基礎上加8小時

root@fcaad17f146a:/# sed -i s/UTC/UTC+8/ /etc/timezone
root@fcaad17f146a:/# cat /etc/timezone 
Etc
/UTC+8

回到jenkins去構建發現時間已經正常

docker+jenkins的構建歷史記錄(Build History)時間不正確