Jenkins 最稳部署指南(含版本选择、Compose 部署、插件推荐)


🧩 Jenkins 版本该怎么选?

Jenkins 官方的版本发布分为两条线:

① LTS(长期支持版)

  • 12 周 选择一次稳定版本
  • 4 周 发布一次小版本(安全补丁 + Bug 修复)
  • 🔥 推荐生产环境使用

② Weekly(每周版)

  • 一周一发
  • 新功能快,但可能存在不稳定因素
  • 🔥 推荐测试环境、插件开发者使用

🛠 Jenkins 支持的 Java 版本对照表

这个表非常关键,如果 Java 版本选错,Jenkins 会直接启动失败!

Java 版本 LTS 版本 Weekly 版本
Java 17 / 21 2.479.1 (2024-10) 2.463 (2024-06)
Java 11 / 17 / 21 2.426.1 (2023-11) 2.419 (2023-08)
Java 11 / 17 2.361.1 (2022-09) 2.357 (2022-06)
Java 8 / 11 / 17 2.346.1 (2022-06) 2.340 (2022-03)
Java 8 / 11 2.164.1 (2019-03) 2.164 (2019-02)
Java 8 2.60.1 2.54

📌 关键结论:

2022-06 之后,Jenkins 正式放弃 Java 8

如果你仍然在使用 JDK 1.8 ,那么 Jenkins 只能选择 2.346.x 系列。


🔍 最终版本选择结论

👉 当前环境使用 JDK 1.8

👉 追求 稳定优先

因此最佳选择是:

复制代码
Jenkins LTS 2.346.3

对应 Docker 镜像:

复制代码
jenkins/jenkins:2.346.3-jdk8

这是目前 Java 8 环境下最稳定、插件兼容性最好 的 Jenkins 版本。


🐳 Docker 方式部署 Jenkins

2.1 环境要求

  • Docker ≥ 19.03
  • Docker Compose ≥ 1.27

📦 2.2 Docker Compose 部署

创建 docker-compose.yml

yaml 复制代码
version: '3'
services:
  jenkins:
    image: jenkins/jenkins:2.346.3-jdk8
    container_name: jenkins
    restart: always
    privileged: true
    user: root
    ports:
      - "18080:8080"
      - "50000:50000"
    volumes:
      - "./jenkins_home:/var/jenkins_home"
      - "./logs:/var/log/jenkins"
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "/etc/localtime:/etc/localtime"
      - "/usr/bin/docker:/usr/bin/docker"

启动 Jenkins:

bash 复制代码
docker-compose up -d

访问地址:

复制代码
http://服务器IP:18080

🌐 Jenkins 镜像源替换(必做)

由于使用的是较老的 Jenkins 版本,如果不换镜像源,会遇到:

  • ❌ 插件无法安装
  • ❌ 插件不兼容
  • ❌ update-center 加载失败

必须切换为国内镜像源。


3.1 获取清华大学 Jenkins 镜像

访问:

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

下载对应版本的 update-center.json


3.2 在 Jenkins 中修改升级站点

路径:

复制代码
Manage Jenkins → Plugins → Advanced → Update Site

把 URL 改为清华镜像地址。


3.3 替换 Jenkins 本地 default.json

① 查找 default.json

bash 复制代码
find / -name default.json

通常位于:

复制代码
/var/jenkins_home/updates/default.json

② 备份

bash 复制代码
cp default.json default.json.bak

③ 替换文件

上传清华源 update-center.json,重命名为:

复制代码
default.json

⚠ 如果文件内容是:

js 复制代码
updateCenter.post({...})

请手动删除 updateCenter.post(),只保留纯 JSON {...},否则 Jenkins 会自动删除该文件。


🔌 Jenkins 插件推荐(稳定组合)

4.1 通用必备插件

Pipeline

  • Pipeline
  • Pipeline: Stage View
  • Pipeline: Declarative Agent API

Git

  • Git
  • GitHub Integration
  • Bitbucket Integration

凭据

  • Credentials
  • Credentials Binding

构建工具

  • Maven Integration
  • Gradle

部署

  • Publish Over SSH
  • SSH Agent

日志增强

  • AnsiColor

Node 支持

  • NodeJS Plugin

节点管理

  • SSH Build Agents
  • Node and Label Parameter
  • Nodes and Clouds

4.2 容器化相关

  • Docker Pipeline
  • Docker Plugin
  • Kubernetes Plugin(如使用 K8s)

4.3 测试 & 质量

  • JUnit
  • SonarQube Scanner
  • HTML Publisher

4.4 流水线触发

  • Webhook Trigger
  • Parameterized Trigger
  • Build Token Root

4.5 管理 & 运维

  • Blue Ocean(强烈推荐)
  • Metrics
  • Role-Based Authorization Strategy(RBAC 权限)
  • Job Configuration History(配置回溯)

更多内容可以关注公众号 linux运维客栈 获取

相关推荐
阿珍爱上了阿强,在一个有星星的夜晚18 小时前
node后端页面性能监测分析
java·学习方法
Java程序之猿18 小时前
SpringBoot + camel+IBM MQ实现消息队列处理
java·spring boot·mybatis
z_鑫18 小时前
SpringCloud FeignClient 中 Bean 重复注册冲突解决方案解析
java·spring boot·spring cloud
孫治AllenSun19 小时前
【线程池】优化等待队列和拒绝策略
java·spring boot·spring cloud
毕设源码-邱学长19 小时前
【开题答辩全过程】以 基于Spring Boot的体育场地预约管理系统为例,包含答辩的问题和答案
java·spring boot·后端
青槿吖19 小时前
第二篇:告别XML臃肿配置!Spring注解式IOC/DI保姆级教程,从入门到真香
xml·java·开发语言·数据库·后端·sql·spring
摇滚侠20 小时前
讲一讲 SpringMVC,线程变量 ThreadLocal 的使用
java·spring boot·intellij-idea
kuntli20 小时前
BIO NIO AIO核心区别解析
java
Javatutouhouduan20 小时前
京东内部强推HotSpot VM源码剖析笔记(2026新版)
java·jvm·java虚拟机·校招·java面试·java程序员·互联网大厂