【研发工具】Jenkins镜像源配置问题及解决方案

一、目的

最近在公司内使用Jenkins时,最开始用的lts-jdk17版本,出现了ssl错误,java验证签名的相关问题,根据AI和网上的说明进行相关配置还是有问题,同时还存在清华源、阿里、华为云不可用,最后测试华为云最新版本需要对应jdk21+以上的jenkins才可用,这里记录一下问题解决过程。

二、Jenkins相关问题

2.1 配置插件源不可用

一开始使用的国内插件源如下,发现不可用了报404错误:

bash 复制代码
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

可快速验证某镜像源是否存活:

bash 复制代码
curl -v "https://mirrors.huaweicloud.com/jenkins/updates/update-center.json"


最后测试多家镜像源,同时翻了一下网上帖子,截至2026年6月,国内部分 Jenkins 镜像源仍可用,但并非全部稳定;清华、阿里、腾讯等源常出现 404 或元数据未同步,华为云镜像源相对可靠,建议优先使用或准备离线安装方案。‌‌
解决方案:
1、使用华为云镜像源,但配置时地址需要注意

bash 复制代码
#错误地址
https://mirrors.huaweicloud.com/jenkins/updates/update-center.json

#可用地址(截止:2026-05-29)
https://mirrors.huaweicloud.com/jenkins/update-center.json

**2、考虑自建内网镜像站或使用代理缓存(如Nexus)(**这里就不演示了)
3、手动导入插件地址
虽然各种镜像源的自动更新站点不可用,但镜像仓库插件还可用,也可以通过手动导入相关插件到Jenkins,这个适合自己测试玩。如下插件


2.2 如果配置https镜像源时,提示ssl问题,可启用" 忽略签名验证 "

在docker环境下可以配置如下yaml文件:

bash 复制代码
version: '3.2'

services:
  web:
    image: 'jenkins/jenkins:lts-jdk21' 
    container_name: 'jenkins'
    restart: always
    environment:
      - JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true
    ports:
      - '8080:8080'
      - '50000:50000'
    volumes:
      - './jenkins_home:/var/jenkins_home'
      - '/var/run/docker.sock:/var/run/docker.sock'

2.3 更新低版本的jenkins

jenkins更新日新月异,迭代和更新的速度很快,为了保障系统的安全和稳定,我们经常需要更新到新的版本上去,但历史构建信息需要保持不受影像,这里有两种更新方法;
1、jdk不变的情况下,可以通过jenkins的war包进行更新

  • 停止 Jenkins 服务 ‌(如 systemctl stop jenkins),避免替换时文件被占用;
  • 备份当前 jenkins.war 和整个 JENKINS_HOME ‌(默认 /var/lib/jenkins),以防回滚;
  • 下载目标版本的官方 WAR 包 ‌(如 LTS 版从 https://www.jenkins.io/download/ 或镜像站获取);
  • 替换原 WAR 文件 ‌(路径通常为 /usr/lib/jenkins/jenkins.war 或 /usr/share/jenkins/jenkins.war,可通过 ps aux | grep jenkins 确认);
bash 复制代码
#备份
cp jenkins.war jenkins.war.back

#复制war包到jenkins文件夹下
mv /usr/jenkins.war /usr/share/jenkins

ps:如果是window环境下安装,直接替换 JENKINS_HOME‌下的war的文件夹即可;

  • 启动服务并验证 ‌(systemctl start jenkins,访问 Web 界面检查版本与插件兼容性)。‌‌
    2、跨Jdk多版本更新jenkins
    a、首先需要备份数据:
    1、配置文件 ‌:通常位于JENKINS_HOME目录。 2、**构建数据** ‌:存储在JENKINS_HOME/jobs目录。
    3、插件 ‌:可以通过Jenkins的插件管理界面导出插件列表。
    b、升级JDK,升级JDK本身并不直接影响Jenkins的数据,但确保新版本的JDK与旧版本兼容是很重要的。
  • 验证兼容性‌:查看Jenkins的官方文档,确认JDK 21是否兼容当前的Jenkins版本(例如,LTS版本或最新稳定版本)。
  • 环境准备‌:在升级之前,在非生产环境(如测试服务器)上安装JDK 21,并验证其与现有Jenkins设置的兼容性。
  • dokcer更新:直接下载最新的容器镜像,更新即可;
    c、更新jenkins, 在确认JDK兼容性后,更新Jenkins到支持JDK 21的版本。在window上需要确保 JAVA_HOME 和 PATH 环境变量指向新的JDK 21。在docker中替换最新镜像即可。
    d、恢复数据。在新安装的Jenkins实例上恢复之前备份的数据:
  • 配置文件 ‌:将备份的配置文件复制到新的$JENKINS_HOME目录。
  • 插件‌:通过插件管理界面重新安装或导入之前备份的插件列表。
  • 构建数据 ‌:将备份的构建数据文件夹复制到新的$JENKINS_HOME/jobs目录。
    通过以上步骤,你可以有效地从JDK 17升级到JDK 21,同时确保Jenkins的数据不丢失且系统稳定运行。
    注意:‌跨多个主版本升级可能存在插件或配置兼容风险 ‌,建议先在测试环境验证;官方不推荐直接替换用于生产环境的非 LTS 跨大版本,优先考虑包管理器(如 apt/yum)或容器化部署以简化升级与回滚。‌‌

2.4 docker内部访问授权问题

想要通过docker进行备份或操作容器内部文件异常时,可通过如下命令进入容器;

bash 复制代码
docker exec -it -u root jenkins /bin/bash

三、文章总结

现在网上遇到问题通过AI搜素进行处理,一些稍微复杂点的内容或则不常见的内容,他提供的内容有限,需要不断的提问,或则看一下它反馈的结果在进行验证。这次也是遇到问题后,AI帮助有限,因此记录一下错误处理过程。

相关推荐
ITKEY_18 分钟前
macOS brew 安装的nginx 文件在哪里?
运维·nginx·macos
Elastic 中国社区官方博客44 分钟前
如何比较两个 Elasticsearch 索引并找出缺失的文档
大数据·运维·数据库·elasticsearch·搜索引擎
Tim_Van2 小时前
在 CentOS 7 中安装 Chromium 的完整步骤
linux·运维·chrome·centos
孫治AllenSun2 小时前
【Nginx】配置参数和使用案例
运维·nginx
啵啵鱼爱吃小猫咪3 小时前
Ubuntu 20.04 + ROS Noetic 源码安装 libfranka 0.8.0 和 franka_ros 0.8.0 完整教程
linux·运维·ubuntu
Piko6144 小时前
锐捷 VSU 虚拟化堆叠配置
运维·网络·笔记
ljs6482739514 小时前
Linux运维实操:vi编辑器永久配置静态IP(CentOS系列)
linux·运维·编辑器
2301_780303904 小时前
网络安全、自动化运维、ERP、CRM、MES
运维·web安全·网络安全·自动化·安全威胁分析
AOwhisky5 小时前
Python 学习笔记(第三期)——流程控制:条件判断与循环结构
运维·笔记·python·学习·云原生·流程控制·循环
IpdataCloud5 小时前
AI生成的Avalon恶意框架怎么防?用IP离线库识别模块化C2通信
运维·人工智能·网络协议·tcp/ip·ip