jenkins通過docker部署后系統(tǒng)時(shí)間不正確問題的詳細(xì)解決方法
前言
如果 Jenkins 系統(tǒng)里的顯示時(shí)間仍然慢了 8 小時(shí),這通常是因?yàn)?Jenkins 的 JVM 時(shí)區(qū)配置 未正確設(shè)置。Jenkins 是基于 Java 的應(yīng)用程序,它的時(shí)間由 JVM 的默認(rèn)時(shí)區(qū)決定。
以下是解決 Jenkins 系統(tǒng)時(shí)間顯示慢 8 小時(shí)問題的詳細(xì)方法:
1. 檢查 Jenkins 的 JVM 時(shí)區(qū)配置
Jenkins 的時(shí)區(qū)由 JVM 的 user.timezone 參數(shù)決定。如果未顯式設(shè)置,JVM 會使用默認(rèn)時(shí)區(qū)(通常是 UTC)。
查看 Jenkins 的當(dāng)前時(shí)區(qū)
- 登錄 Jenkins 控制臺。
- 進(jìn)入 Manage Jenkins > System Information。
- 查找
user.timezone屬性,確認(rèn)當(dāng)前時(shí)區(qū)。
如果 user.timezone 顯示為 UTC 或其他非預(yù)期時(shí)區(qū),則需要修改 JVM 的時(shí)區(qū)配置。
2. 修改 Jenkins 的 JVM 時(shí)區(qū)
方法 1:通過環(huán)境變量設(shè)置時(shí)區(qū)
在運(yùn)行 Jenkins 容器時(shí),通過環(huán)境變量 JAVA_OPTS 或 JENKINS_JAVA_OPTIONS 設(shè)置 JVM 時(shí)區(qū)。
使用 docker run 命令
docker run -d \ --name jenkins \ -p 8080:8080 -p 50000:50000 \ -e JAVA_OPTS="-Duser.timezone=Asia/Shanghai" \ jenkins/jenkins:lts
使用 docker-compose
在 docker-compose.yml 中添加環(huán)境變量:
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
ports:
- "8080:8080"
- "50000:50000"
environment:
- JAVA_OPTS=-Duser.timezone=Asia/Shanghai
方法 2:修改 Jenkins 容器的啟動腳本
如果 Jenkins 容器已經(jīng)運(yùn)行,可以通過修改啟動腳本設(shè)置時(shí)區(qū)。
- 進(jìn)入 Jenkins 容器:
docker exec -it jenkins /bin/bash
- 編輯 Jenkins 啟動腳本(通常位于
/usr/local/bin/jenkins.sh):vi /usr/local/bin/jenkins.sh
- 找到
exec java行,添加-Duser.timezone=Asia/Shanghai參數(shù):exec java -Duser.timezone=Asia/Shanghai -jar /usr/share/jenkins/jenkins.war "$@"
- 保存并退出,然后重啟容器:
docker restart jenkins
3. 驗(yàn)證 Jenkins 時(shí)區(qū)
- 登錄 Jenkins 控制臺。
- 進(jìn)入 Manage Jenkins > System Information。
- 查找
user.timezone屬性,確認(rèn)時(shí)區(qū)已正確設(shè)置為Asia/Shanghai。
4. 檢查 Jenkins 系統(tǒng)配置
如果 JVM 時(shí)區(qū)配置正確,但 Jenkins 的時(shí)間仍然不正確,可能是 Jenkins 系統(tǒng)配置問題。
檢查 Jenkins 系統(tǒng)時(shí)間
- 登錄 Jenkins 控制臺。
- 進(jìn)入 Manage Jenkins > System Information。
- 查找
user.timezone和user.country,確保時(shí)區(qū)和國家/地區(qū)設(shè)置正確。
安裝并配置 Time Zone 插件
- 登錄 Jenkins 控制臺。
- 進(jìn)入 Manage Jenkins > Manage Plugins。
- 在 Available 選項(xiàng)卡中搜索
Time Zone插件并安裝。 - 安裝完成后,進(jìn)入 Manage Jenkins > Configure System。
- 找到 Time Zone 配置項(xiàng),設(shè)置正確的時(shí)區(qū)(例如
Asia/Shanghai)。 - 保存配置。
5. 檢查宿主機(jī)和容器時(shí)間
確保宿主機(jī)和容器的時(shí)間同步。
檢查宿主機(jī)時(shí)間
date
檢查容器時(shí)間
docker exec jenkins date
如果宿主機(jī)和容器時(shí)間不一致,可以參考以下方法同步時(shí)間:
- 掛載宿主機(jī)的
/etc/localtime和/etc/timezone:docker run -d \ --name jenkins \ -p 8080:8080 -p 50000:50000 \ -v /etc/localtime:/etc/localtime:ro \ -v /etc/timezone:/etc/timezone:ro \ jenkins/jenkins:lts
6. 重啟 Jenkins 服務(wù)
完成以上配置后,重啟 Jenkins 服務(wù)以應(yīng)用更改。
重啟 Jenkins 容器
docker restart jenkins
總結(jié)
- 根本原因:Jenkins 的 JVM 時(shí)區(qū)未正確配置,導(dǎo)致時(shí)間顯示慢 8 小時(shí)。
- 解決方法:
通過
JAVA_OPTS或JENKINS_JAVA_OPTIONS設(shè)置 JVM 時(shí)區(qū)。安裝并配置 Jenkins 的
Time Zone插件。確保宿主機(jī)和容器的時(shí)間同步。
到此這篇關(guān)于jenkins通過docker部署后系統(tǒng)時(shí)間不正確問題的文章就介紹到這了,更多相關(guān)jenkins docker部署系統(tǒng)時(shí)間不正確內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Java實(shí)現(xiàn)收發(fā)電子郵件功能
Email就是電子郵件,我們平常使用的QQ郵箱,網(wǎng)易郵箱,F(xiàn)oxmail都是用來收發(fā)郵件的,利用Java程序也可以完成收發(fā)電子郵件的功能,本文就來為大家詳細(xì)講講實(shí)現(xiàn)步驟2022-07-07
deepseek本地部署及java、python調(diào)用步驟詳解
這篇文章主要介紹了如何下載和使用Ollama模型,包括安裝JDK?17及以上版本和Spring?Boot?3.3.6,配置pom文件和application.yml,創(chuàng)建Controller,以及使用Python調(diào)用模型,需要的朋友可以參考下2025-02-02
netty服務(wù)端處理請求聯(lián)合pipeline分析
這篇文章主要為大家介紹了netty服務(wù)端處理請求聯(lián)合pipeline示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
springcloud如何使用Feign后臺內(nèi)部傳遞MultipartFile
這篇文章主要介紹了springcloud如何使用Feign后臺內(nèi)部傳遞MultipartFile,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Java使用CompletableFuture實(shí)現(xiàn)異步編程
在現(xiàn)代 Java 開發(fā)中,異步編程是一項(xiàng)重要技能,而 CompletableFuture 是從 Java 8 開始提供的一個(gè)功能強(qiáng)大的工具,用于簡化異步任務(wù)的編寫和組合,本文將詳細(xì)介紹 CompletableFuture 的基本使用和一些常見的應(yīng)用場景,需要的朋友可以參考下2025-01-01
K8S(Docker)如何優(yōu)雅的關(guān)閉SpringBoot微服務(wù)
這篇文章主要介紹了K8S(Docker)如何優(yōu)雅的關(guān)閉SpringBoot微服務(wù)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-01-01

