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运维客栈 获取

相关推荐
2601_9620715710 小时前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
zww894911111 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·eclipse
zww894911113 小时前
匿名树洞系统开发实战:从需求分析到部署指南
java·eclipse
黑马程序员毕设15 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
木井巳15 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
白山编程大哥15 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
devpotato15 小时前
缓存与数据库更新顺序不一致问题
java·数据库·redis
xcl092515 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·spring boot·需求分析
Kyrie_kk16 小时前
Java--IO--Path文件访问
java·后端
qinqinzqq16 小时前
Maven POM 格式、Schema 与 XSD:一篇讲透
java·maven