Jenkins修改時區(Docker)

2021-07-10 04:26:58 字數 1389 閱讀 3659

說明:該文章是針對jenkins執行在docker容器中時,jenkins的時間與容器的時間不一致。而非jenkins直接執行在系統各種。不過解決問題的思路都是一致的。

通過官方的jenkins容器執行jenkins服務,但是發現jenkins的時間與docker容器內的時間相同,但都與北京時間正好差8個小時。基本確定時區問題

docker exec
檢視jenkins的時間

在「jenkins的ui-》系統管理-》系統資訊」中有user.timezone的字段
時間相差8個小時,基本可以確定時區問題。所以上網搜尋了些內容,基本解決辦法如下

既然docker容器的時間正確了,但是jenkins的時間還是不對的,說明jenkins的時區使用的不是/etc/localtime,而是另有他處。

jenkins-》系統管理-》系統資訊中可以看到有關時區的是user.timezone屬性值是etc/utc。**存放的這個值呢,應該是/etc/timezone了。所以嘗試下/etc/timezone的設定。

docker exec

my-jenkins cat /etc/timezone

etc/utc

可以看到時區是etc/utc,基本上可以確定是這裡導致的了

備註:通過驗證debian系列才有timezone這個檔案的,在centos中是沒有這個檔案的。所以確定jenkins的docker容器是基於debian系的linux

修改/etc/localtime,修改容器的時間

修改/etc/timezone,修改jenkins的時區

最終構建docker容器的命令如下(如有其他引數,請自行新增其他引數)

docker run -d

--name ci --privileged=

true

-v /etc/localtime:/etc/localtime -v

/[my_path]

/timezone:/etc/timezone jenkins

或者

docker run -d --name ci --privileged=true -v /usr/share/zoneinfo/asia/shanghai

:/etc/localtime -v /[my_path]/timezone:/etc/timezone jenkins

asia/shanghai

ubuntu 修改時區

linux預設情況下使用utc格式作為標準時間格式,如果在linux下執行程式,且在程式中指定了與系統不一樣的時區的時候,可能會造成時間錯誤。如果是ubuntu的桌面版,則可以直接在圖形模式下修改時區資訊,但如果是在server版呢,則需要通過tzconfig來修改時區資訊了。使用方式 如將時區設定...

ubuntu 修改時區

1 修改時區,由utp轉為cst 兩中方法 a 終端中輸入 tzselect 回車 輸入12 輸入gst 8 輸入 1 控制台輸入 tz asia shanghai 控制台輸入 export tz b mv etc localtime etc localtime bak ln sf usr shar...

linux修改時區

timedatectl 檢視系統時間方面的各種狀態 local time 四 2014 12 25 10 52 10 cst universal time 四 2014 12 25 02 52 10 utc rtc time 四 2014 12 25 02 52 10 timezone asia s...