jenkins通过docker部署后系统时间不正确的问题

修改docker部署jenkins时区和时间 场景:在jekins中设置的定时任务凌晨备份数据库,但是都是上午十点左右开始备份,想到应该是时区的问题。 系统时间查询 date -R 运行tzselect tzselect 复制文件到/etc目录下 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 查看时间 进入jekins容器查看: docker exec -it jekins /bin/bash 修改容器内系... 阅读详情
AI摘要

Jenkins通过docker部署后系统时间可能慢8小时,这通常是JVM时区配置未正确设置导致。解决方法包括检查并修改Jenkins的JVM时区配置,可通过环境变量或修改启动脚本;检查Jenkins系统配置,安装并配置Time Zone插件;确保宿主机和容器时间同步,最后重启Jenkins服务。

如果 Jenkins 系统里的显示时间仍然慢了 8 小时,这通常是因为 Jenkins 的 JVM 时区配置 未正确设置。Jenkins 是基于 Java 的应用程序,它的时间由 JVM 的默认时区决定。

以下是解决 Jenkins 系统时间显示慢 8 小时问题的详细方法:


1. 检查 Jenkins 的 JVM 时区配置

Jenkins 的时区由 JVM 的 user.timezone 参数决定。如果未显式设置,JVM 会使用默认时区(通常是 UTC)。

查看 Jenkins 的当前时区
  1. 登录 Jenkins 控制台。
  2. 进入 Manage Jenkins > System Information。
  3. 查找 user.timezone 属性,确认当前时区。

如果 user.timezone 显示为 UTC 或其他非预期时区,则需要修改 JVM 的时区配置。


2. 修改 Jenkins 的 JVM 时区

方法 1:通过环境变量设置时区

在运行 Jenkins 容器时,通过环境变量 JAVA_OPTS 或 JENKINS_JAVA_OPTIONS 设置 JVM 时区。

使用 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 中添加环境变量:

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 容器已经运行,可以通过修改启动脚本设置时区。

  1. 进入 Jenkins 容器:
    docker exec -it jenkins /bin/bash
    
  2. 编辑 Jenkins 启动脚本(通常位于 /usr/local/bin/jenkins.sh):
    vi /usr/local/bin/jenkins.sh
    
  3. 找到 exec java 行,添加 -Duser.timezone=Asia/Shanghai 参数:
    exec java -Duser.timezone=Asia/Shanghai -jar /usr/share/jenkins/jenkins.war "$@"
    
  4. 保存并退出,然后重启容器:
    docker restart jenkins
    

3. 验证 Jenkins 时区

  1. 登录 Jenkins 控制台。
  2. 进入 Manage Jenkins > System Information。
  3. 查找 user.timezone 属性,确认时区已正确设置为 Asia/Shanghai。

4. 检查 Jenkins 系统配置

如果 JVM 时区配置正确,但 Jenkins 的时间仍然不正确,可能是 Jenkins 系统配置问题。

检查 Jenkins 系统时间
  1. 登录 Jenkins 控制台。
  2. 进入 Manage Jenkins > System Information。
  3. 查找 user.timezone 和 user.country,确保时区和国家/地区设置正确。
安装并配置 Time Zone 插件
  1. 登录 Jenkins 控制台。
  2. 进入 Manage Jenkins > Manage Plugins。
  3. 在 Available 选项卡中搜索 Time Zone 插件并安装。
  4. 安装完成后,进入 Manage Jenkins > Configure System。
  5. 找到 Time Zone 配置项,设置正确的时区(例如 Asia/Shanghai)。
  6. 保存配置。

5. 检查宿主机和容器时间

确保宿主机和容器的时间同步。

检查宿主机时间
date
检查容器时间
docker exec jenkins date

如果宿主机和容器时间不一致,可以参考以下方法同步时间:

  • 挂载宿主机的 /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 服务

完成以上配置后,重启 Jenkins 服务以应用更改。

重启 Jenkins 容器
docker restart jenkins

总结

  • 根本原因:Jenkins 的 JVM 时区未正确配置,导致时间显示慢 8 小时。
  • 解决方法:
    1. 通过 JAVA_OPTS 或 JENKINS_JAVA_OPTIONS 设置 JVM 时区。
    2. 安装并配置 Jenkins 的 Time Zone 插件。
    3. 确保宿主机和容器的时间同步。
Jenkins构建历史记录时间差八小时 通过配置映射/etc/localtime 保持主机的时间地区和容器时间地区一致。 阅读详情

相关推荐

Jenkins执行策略(图文讲解)

1、定时任务表达式:Jenkins使用一种特定的表达式来定义定时任务的执行时间和频率。这个表达式被称为Cron表达式,它由5个或6个字段组成,分别表示分钟、小时、日期、月份和星期几。通过设置这些字段的值,可以实现各种不同的定时任务调度。【构建触发器】中勾选其他工程构建后触发,并输入关注的项目。名字随意命名,英文即可,例如testwebhook。【构建触发器】中勾选定时构建,并输入时间格式。星期几(0-7,其中0和7都表示星期日)一般情况下:勾选只有构建稳定时触发。

python全栈 5826

【Jenkins】时区变更的三种方式

时区问题的排查及三种解决办法

qq_35472206的博客 8329

docker-compose轻松部署jenkins

docker-compose轻松部署jenkins

qq_48472816的博客 1827

Jenkins操作小技巧

---------------------------------------2023-03-06更新----------------------------------------------------------------------在此处填写相应的分支即可。

weixin_44259638的博客 2110

颠覆性创新的测量框架与跨领域实证分析

颠覆性创新作为科技发展的重要驱动力,其核心在于实现知识体系的范式转换。从技术原理看,这类创新通常具备知识替代、网络重构和跨领域渗透三大特征,通过引用网络分析和文本挖掘等方法可量化评估其影响力。在工程实践中,CD指数、DI指数等测量工具帮助研究者识别具有突破潜力的成果,而深度学习等新兴技术进一步提升了评估精度。当前AI、半导体等领域的热门技术发展表明,模块化架构和产业协同能有效促进颠覆性创新。面对全球范围内创新颠覆性下降的趋势,优化科研评价体系、构建跨学科协作网络成为关键应对策略。

weixin_29735807的博客 321

Cocos Creator 3.x 实战:用脚本动态加载Spine动画,告别resources硬编码

本文详细介绍了Cocos Creator 3.x中Spine动画的动态加载与挂点系统实战技巧。通过Asset Bundle替代传统resources硬编码方式,实现资源的高效管理和热更新支持,同时结合TypeScript强类型和单例模式优化加载流程。文章还深入探讨了跨平台适配、挂点编程方案及性能优化策略,帮助开发者提升游戏开发效率与灵活性。

weixin_42526353的博客 267

docker快速部署jenkins

本文介绍了使用Docker部署Jenkins的简明步骤:首先创建并授权挂载目录/zero/jenkins,然后通过docker run命令启动Jenkins容器,配置端口映射、文件挂载和时区设置。部署完成后,可通过访问8080端口进入Jenkins,初始管理员密码位于挂载目录的secrets/initialAdminPassword文件中。整个过程简单高效,适合快速搭建Jenkins环境。

weixin_44556848的博客 747

Docker部署jenkins

使用Docker卷(自动管理权限)# 或手动创建主机目录(需设置权限)#授权文件夹# 启动Jenkins容器-d: 后台运行容器。--name: 容器名称。-p 8888:8080: 映射Web界面端口。-p 50099:50000: 供Jenkins Agent连接的端口。-v: 数据卷挂载,确保数据持久化。docker logs jenkins # 在日志中查找密码# 或直接从容器中读取。

feritylamb的博客 3644

【SigmaStar SSC335系列】空片用Flash_Tool烧写

简介 本文主要讲新拿到的PCBA,板上spi nand flash还是空的,如何在这种情况下烧录固件,这里讲解用官方Flash_Tool烧写的方式。 但只讲一些注意的地方和坑,其它的官方文档里说的比较清楚,不多说。 准备 Flash_Tool烧写软件 编译打包好烧写镜像 串口烧录小板 ----- 这个是个坑,在官方文档里并没有提及,刚开始用的平时调试的USB转串口,怎么都没反应,一度不知烧写软件不对还是硬件有问题,最后通过厂家技术支持才得知,除了专门的Flash_Tool外,还要专门的串口烧录器

老K 4698

视觉Transformer实战 | Vision Transformer(ViT)详解与实现

在计算机视觉领域,卷积神经网络 (CNN) 长期以来一直是处理图像任务的主流架构。然而,随着 Transformer 在自然语言处理领域的巨大成功,研究人员开始探索将这种基于自注意力机制的架构应用于视觉任务。Vision Transformer (ViT) 是这一探索的重要里程碑,它首次证明了纯 Transformer 架构在图像分类任务上可以超越最先进的 CNN 模型。本文将详细介绍 ViT 的技术原理,并使用 PyTorch 从零开始构建 ViT 模型用于图像分类任务。

盼小辉丶的博客 4万+

Ubuntu 系统使用 Docker 部署 Jenkins 详细教程

Jenkins 通过自动化构建、测试和部署流程,结合持续集成和持续交付的最佳实践,成为 DevOps 领域的关键工具。它不仅提升了软件交付速度和质量,还促进了团队协作和持续改进的文化。对于追求高效开发和稳定交付的团队而言,Jenkins 是一个不可或缺的选择。

✦ 一个爱折腾服务器、沉迷写 Shell 脚本的 Linux 爱好者。 ✦ 每一篇教程都来自亲手搭建 + 反复验证,只为让你“一次成功”。 ✦ 相信技术的价值在于分享,也相信善意会传递。 ✦ 欢迎留言交流,有问必答(只要我会) 1373

第78章:PCL Multiple View ICP 多视角配准

多视角配准(Multiple View ICP)是迭代最近点(ICP)算法的扩展,旨在处理多视角的点云数据配准问题。传统的ICP算法主要用于两幅点云之间的配准,而多视角配准则处理来自多个视角或不同时间采集的多个点云数据的配准任务。在实际应用中,多个传感器或多个拍摄角度获得的点云数据常常需要进行联合配准。这些点云可能由于不同的视角、拍摄位置或时间差异而存在位置和旋转的差异。多视角配准的目标是根据多个点云之间的匹配关系,找到它们的相对变换,使得这些点云能够合并成一个统一的三维模型。

yumeiguo的博客 158

Linux Docker 部署 Jenkins 详解教程

**Jenkins** 是当前最流行的持续集成和持续交付(CI/CD)工具之一,它能够帮助开发团队实现自动化构建、测试和部署。在现代 DevOps 流程中,Jenkins 是不可或缺的一部分。结合 Docker 部署 Jenkins 可以简化安装与维护过程,提高环境的可移植性和灵活性。 本文将详解如何在 Linux 环境下使用 Docker 部署 Jenkins,包括从基础环境准备到实际配置、插件管理及最佳实践。

fudaihb的博客 1700

AgentScope 2.0 扩展开发完全指南:从中间件到模型适配器的深度实践

本文系统讲解 AgentScope 2.0 框架的五大扩展机制,涵盖中间件系统的洋葱模型与钩子设计、ChatModelBase 基类与多供应商适配器开发、工作空间(本地/Docker/E2B)的抽象接口与生命周期管理、凭据工厂与 MCP 协议集成、以及工具协议与存储后端扩展。文中提供完整的架构图、代码示例与故障排查指南,帮助开发者快速掌握 AgentScope 的插件化扩展体系。

program哲学 295

【Flink】FlinkSQL如何触发执行计算

Table (通过 StatementSet.addInsert() 输出给某个 Sink)和 INSERT 语句 (通过调用 StatementSet.addInsertSql())会先被缓存到 StatementSet 中,StatementSet.execute() 方法被调用时,所有的 sink 会被优化成一张有向无环图。该方法是用来将一个表的内容插入到目标表中,一旦该方法被调用, TABLE API 程序立即被翻译。该方法是用来执行一个 SQL 语句,一旦该方法被调用, SQL 语句立即被翻译。

一杯咖啡半杯糖的博客 1006

docker(7)快速部署jenkins

1.linux 购买阿里云服务器2.docker 参考。

陌上花开的博客 1219

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

基于docker部署Jenkins

基于docker部署Jenkins 1.下载镜像 docker pull jenkins/jenkins 一定要安装最新版的 jenkins,如果安装旧版本,很多插件安装不上 2.查看下好的docker镜像 docker images 3.查看是否为最新版的 docker inspect Docker inspect jenkins:2.200 4.创建一个 jenkins 目录 【后面有用...

nanhavezhi的博客 5153

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

docker+jenkins+gitlab 自动化部署

查看某个镜像版本信息docker search 镜像#拉取镜像docker pull 镜像#列出已有镜像#导出镜像docker save REPOSITORY:TAG/镜像ID > /镜像路径/镜像.tar.gz举例:docker save centos7:latest > /root/centos7.tar.gz#导入镜像docker load < /镜像路径/镜像.tar.gz举例:docker load < /root/centos7.tar.gz#移除镜像。

m0_55460520的博客 2246

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

docker通过tomcat容器部署Jenkins

记录操作步骤。

m0_69265912的博客 1174

Jenkins + Docker 完整部署指南

本文详细记录了在阿里云服务器上部署Jenkins的完整流程。首先升级JDK到Java21,包括版本检查、安装配置和环境变量设置。接着安装Docker并配置阿里云镜像加速器解决网络问题。最后使用Docker Compose部署Jenkins(基于Java21镜像),包含目录创建、权限设置、配置文件编写和容器启动步骤。文中还提供了服务器防火墙和安全组配置指南,以及Jenkins初始化设置说明。整个过程涵盖了常见问题的解决方案,如网络连接错误、版本兼容性等,为开发者在云服务器上搭建CI/CD环境提供了实用参考。

m0_64878355的博客 1711

docker部署Jenkins 新手使用教程

本文通过docker部署Jenkins+Maven+SVN+Tomcat,在基础镜像Jenkins上安装Maven及自带的OpenJDK形成新的镜像,然后通过SVN将项目checkout下来,由Jenkins自带的插件或脚本将Maven生成的war包发送到指定的Tomcat的WebApps目录下,最终启动Tomcat完成自动化部署。 通过docker命令:sudo docker r...

weixin_38978094的博客 1万+

Linux中使用Docker部署Jenkins

"8099:8080" # ← 只改这里。user: root # ← 加这一行。# 进入docker中获取jenkins的密码。显示:没有权限,则看方法2;输出的密码后打开浏览器。

2301_81325634的博客 553

docker、docker-compose容器化部署Jenkins

超详细的Jenkins自动化部署Vue项目教程

andyLyysh的博客 2937

前端实现自动化部署docker+Jenkins

注: cd /var/jenkins_home/workspace/testAutoBuild /var/jenkins_home/workspace后面必须为配置的任务名称不然打包报错(cd /var/jenkins_home/workspace/任务名称)只需要添加 cp -r /var/jenkins_home/workspace/testAutoBuild/dist/* /var/jenkins_home/workspace/web/testAutoBuild。

m0_54526018的博客 1226
上一篇: jenkins + gitee码云搭建全自动发布流程
下一篇: 在 Jenkins 中配置 Build with Parameters
wey  chan
博客等级 码龄7年 219粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wey chan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值