Docker 学习之路-从入门到放弃-Jenkins:4

Jenkins 打开

如图已经完全成功安装并初始化Jenkins了!

从图1可以确认:

  • 能正常访问Jenkins Web管理界面、登录成功
  • 核心功能入口(Create a job/Manage Jenkins等)正常显示
  • 构建执行器(Build Executor Status)显示空闲,说明服务运行稳定
  • 无报错提示,说明插件安装、管理员账号初始化全部完成

接下来我给大家讲一套小白友好、从0到1的全流程指南,实现「本地代码→GitHub→Jenkins自动打包→项目运行」,每一步都有可直接复制的操作��

一、先理清整个流程的逻辑

本地代码 → 【push推送到】GitHub仓库 → 【Jenkins pull拉取】代码 → 执行打包编译 → 构建成功后自动部署运行

(还可以加自动触发:GitHub提交代码后,自动通知Jenkins构建,不用手动点)

二、步骤1:把本地代码推送到GitHub(代码托管)

1.1 创建GitHub仓库

  1. 登录GitHub,点击右上角「+」→「New repository」
  2. 填写仓库名(比如my-java-project),选择Public/Private(私有仓库需要额外配置权限)
  3. 不要勾选「Initialize this repository with a README」(本地已有代码时)
  4. 点击「Create repository」,复制仓库地址(比如https://github.com/你的GitHub用户名/你的仓库名.git)

1.2 本地代码关联GitHub并推送

打开本地代码文件夹,右键打开Git Bash(或终端),执行以下命令:

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Bash # 1. 初始化本地Git仓库(首次使用才需要) git init # 2. 关联GitHub远程仓库(替换成你自己的仓库地址) git remote add origin https://github.com/你的GitHub用户名/你的仓库名.git # 3. 添加所有代码到暂存区 git add . # 4. 提交代码到本地仓库 git commit -m "第一次提交:初始化项目代码" # 5. 推送到GitHub的main分支(如果是master分支,把main换成master) git push -u origin main |

执行完后,刷新GitHub仓库,能看到代码就说明这一步完成✅

三、步骤2:Jenkins基础环境配置(Java/Maven必备)

你是Java开发,打包需要JDK和Maven,先在Jenkins里配置好工具,避免打包失败。

2.1 安装核心插件

  1. Jenkins首页→左侧Manage Jenkins→Plugins
  2. 点击Available plugins,搜索并安装以下插件:
  • Git plugin:支持Jenkins拉取Git代码
  • GitHub plugin:GitHub集成、WebHook自动触发
  • Maven Integration plugin:Maven项目打包支持(用Gradle就装Gradle插件)
  • NodeJS plugin(如果有前端项目):前端打包支持
  • 安装完成后,重启Jenkins(Manage Jenkins→Reload Configuration from Disk,或直接重启服务)

2.2 配置JDK、Maven全局工具

  1. Manage Jenkins→Global Tool Configuration
  2. 配置JDK
  • 找到「JDK」→「Add JDK」
  • 取消Install automatically,手动填写JDK安装路径(Linux示例:/usr/lib/jvm/java-1.8.0-openjdk-amd64;Windows示例:C:\Program Files\Java\jdk1.8.0_301)
  • 别名填JDK8(方便后续任务调用),点击保存

配置Maven

  • 找到「Maven」→「Add Maven」
  • 取消Install automatically,手动填写Maven安装路径(示例:/usr/local/maven-3.8.6)
  • 别名填Maven3.8.6,点击保存
  • 保存后,环境配置完成✅

四、步骤3:Jenkins创建任务,拉GitHub代码+打包编译

3.1 创建自由风格项目(小白首选,简单易上手)

  1. Jenkins首页→左侧New Item
  2. 输入任务名(比如my-java-project-build),选择Freestyle project,点击「OK」

3.2 配置源码管理(拉GitHub代码)

  1. 任务配置页→找到Source Code Management→选择「Git」
  2. Repository URL:填写你的GitHub仓库地址
  • 私有仓库需要添加凭证:点击「Add」→「Jenkins」,选择Username with password
  • Username填GitHub用户名,Password填GitHub Personal Access Token(PAT) (生成方法:GitHub→Settings→Developer settings→Personal access tokens→Tokens(classic),勾选repo权限生成)
  1. Branches to build :填*/main(对应GitHub分支,master就填*/master)
  2. 点击「Save」,再点击「Build Now」测试:
  • 进入Build History→对应构建→Console Output,看到拉取代码成功就说明没问题

3.3 配置构建步骤(Maven打包)

  1. 回到任务配置页→Build→「Add build step」→「Invoke top-level Maven targets」
  2. Maven Version :选择刚才配置的Maven3.8.6
  3. Goals :填写打包命令:clean package -DskipTests
  • clean:清理旧编译文件
  • package:打包成jar/war
  • -DskipTests:跳过测试,加快打包速度(避免测试失败导致打包失败)

点击「Save」,再次点击「Build Now」测试:

  • 看到BUILD SUCCESS就说明打包成功!
  • 打包后的jar包在任务页→Workspace→target目录下

五、步骤4:GitHub自动触发Jenkins构建(WebHook配置,推荐)

现在是手动点「Build Now」,配置WebHook后,GitHub提交代码会自动触发Jenkins构建,实现「提交=自动打包」。

4.1 Jenkins配置触发权限

  1. 任务配置页→Build Triggers→勾选GitHub hook trigger for GITScm polling
  2. 点击「Save」
  3. 确认Jenkins能被外网访问(如果是内网,需要用ngrok等内网穿透工具)

4.2 GitHub配置WebHook

  1. GitHub仓库→Settings→Webhooks→「Add webhook」
  2. Payload URL :填写http://你的Jenkins服务器IP:8080/github-webhook/(**末尾必须加** / ,否则会失败
  3. Content type :选择application/json
  4. 触发事件 :选择Just the push event(仅代码推送时触发)
  5. 勾选Active,点击「Add webhook」
  6. 配置完成后,GitHub会发送测试请求,显示绿色对勾就成功✅

六、步骤5:构建成功后,自动运行项目(部署启动)

情况1:Jenkins和项目在同一台服务器(最简单)

  1. 任务配置页→Post-build Actions→「Add post-build action」→Execute shell(Linux)/Execute Windows batch command(Windows)
  2. 填写启动脚本(Linux示例,替换成你的jar包名):

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Bash # 1. 进入打包目录 cd /var/lib/jenkins/workspace/my-java-project-build/target # 2. 停止旧进程(避免端口占用) ps -ef | grep my-java-project.jar | grep -v grep | awk '{print $2}' | xargs kill -9 # 3. 后台启动项目,指定端口,输出日志 nohup java -jar my-java-project.jar --server.port=8081 > /var/log/my-java-project.log 2>&1 & |

点击「Save」,构建成功后会自动执行脚本,启动项目✅

情况2:Jenkins和项目在不同服务器

  1. 安装Publish Over SSH插件,配置目标服务器的SSH连接
  2. 构建后操作选择Send files or execute commands over SSH,传输jar包到目标服务器,再执行启动脚本

七、小白必看避坑指南

  1. GitHub私有仓库权限:GitHub已禁用密码登录,必须用Personal Access Token(PAT)
  2. WebHook无法访问:内网Jenkins需要用ngrok等内网穿透,把本地8080端口映射到公网
  3. Maven打包慢 :配置Maven阿里云镜像,直接替换settings.xml即可(我可以给你现成配置)
  4. Jenkins权限问题 :Linux下Jenkins默认用户是jenkins,需要给jenkins用户操作服务器的权限
  5. 端口占用:启动项目时如果端口被占用,换端口或杀掉占用进程

如果打开Manage Jenkins 出现下图情况:

不用惊慌,这些红色报错不是安装失败,是插件版本不兼容 导致的:

你装的插件版本太新,要求更高的 Jenkins 核心版本,而你当前的 Jenkins 版本不够,所以插件加载失败了,完全不影响基础功能使用。

没关系的,我的配置如下:

版本如下:

如果不放心,Jenkins 借助 Docker-compose 的完美升级流程

核心

  1. docker-compose pull 默认会拉取配置文件里所有服务的镜像(MySQL、Redis、Jenkins 全拉)
  2. 完全可以只拉取 Jenkins 镜像 + 只重启 Jenkins 容器,其他服务完全不受影响!
  3. 关键:在命令后面加上你的服务名 jenkins,就能精准定位操作

你直接复制用的 2 条命令(仅更新+重启 Jenkins)
更新
docker-compose.yml

你的 docker-compose.yml 里服务名是 jenkins,所以直接用这两个命令:

1. 仅拉取最新的 Jenkins 镜像(不拉其他任何镜像)

|----------------------------------|
| Bash docker-compose pull jenkins |

✅ 作用:只更新 Jenkins 镜像,MySQL/Redis/其他服务完全不动

2. 仅重启/重建 Jenkins 容器(不重启其他容器)

|-----------------------------------|
| Bash docker-compose up -d jenkins |

✅ 作用:

  • 刚拉取的最新 Jenkins 镜像重建容器
  • 只操作 Jenkins,其他容器保持运行,无任何影响
  • 保留你的所有数据、配置、任务(数据卷挂载没变)

补充:纯重启 Jenkins(不更新镜像)

如果只是想重启 Jenkins,不想更新版本,用这个:

|-------------------------------------|
| Bash docker-compose restart jenkins |

关键知识点(一看就懂)

|--------------------------------|----------------------|----------------|
| 命令 | 作用 | 适合场景 |
| docker-compose pull | 拉取所有服务镜像 | 全部服务都要更新 |
| docker-compose pull jenkins | 仅拉取 Jenkins 镜像 | 只更新 Jenkins |
| docker-compose up -d | 重启所有更新的容器 | 全部服务重启 |
| docker-compose up -d jenkins | 仅重建 Jenkins 容器(用新镜像) | 只更新+重启 Jenkins |
| docker-compose restart jenkins | 仅重启 Jenkins(旧镜像) | 仅重启,不更新 |

完整升级流程(零风险、不影响其他服务)

  1. 进入你的 docker-compose.yml 所在目录
  2. 执行(仅更新 Jenkins):

|----------------------------------|
| Bash docker-compose pull jenkins |

执行(仅重启 Jenkins):

|-----------------------------------|
| Bash docker-compose up -d jenkins |

等待 1 分钟,访问 Jenkins 就完成升级了 ✅

相关推荐
学习使我快乐——玉祥2 小时前
ElasticSearch离线安装
大数据·elasticsearch·jenkins
sugar15692 小时前
Trae 添加项目规则,快速完成crmeb项目本地开发环境搭建
docker·容器·trae
H_老邪2 小时前
Docker 学习之路-从入门到放弃:3
学习·docker·容器
F1FJJ2 小时前
Shield CLI v0.3.3 新增 PostgreSQL 插件:浏览器里管理 PG 数据库
网络·网络协议·docker·postgresql·容器·go
技术栈壳2 小时前
搭建docker hub私有仓库
运维·docker·容器
qq_297574672 小时前
K8s系列第十五篇(终篇):K8s 集群优化实战:性能、稳定性与安全性优化
docker·容器·kubernetes
回到原点的码农2 小时前
Node.js 与 Docker 深度整合:轻松部署与管理 Node.js 应用
docker·容器·node.js
sjmaysee3 小时前
Springboot中使用Elasticsearch(部署+使用+讲解 最完整)
spring boot·elasticsearch·jenkins
cyber_两只龙宝3 小时前
【Docker】搭建Docker私有Registry仓库全流程详解
linux·运维·docker·容器·私有仓库