Skip to content

Jenkins 流水线配置

部署跑通后的持续构建发布(一屏通读,右侧「本页目录」定位)。CI 不是首次登录验收的前置条件。凭据使用临时只读 Token,禁止管理员账号入库。

00 部署方案

形态参考典型 Job
Linux 单体客户生产「领先」backend / web / uniapp / goview
微服务ruoyi-office-ms-deploy单服务 / P0P1 批量 / web / uniapp

完整 Jenkinsfile 在 ruoyi-office-customer-deploy/ 对应客户或 ms-deploy 目录;本文只写阶段结构与必改占位符。



对齐已跑通的 Ubuntu 单机生产形态(Docker 后端 + Nginx 静态)。

建议 Job

Job仓库产物
*-backendruoyi-office构建 -Pboot JAR → 宿主机目录 → docker buildcompose up -d 重建 yudao-server
*-webruoyi-office-vbenpnpm build:antd/data/nginx/html/web
*-uniappruoyi-office-uniappH5 → /data/nginx/html/app
*-goview(可选)ruoyi-office-ui-go-view/data/nginx/html/goview

现场必改占位符

说明
Git URL / 分支客户仓库与发布分支
Credentials IDcodeup-https(只读 Token)
部署路径/data/app/data/nginx/html/.../data/compose
生产 env建议挂载 /data/jenkins/<customer>-env/,构建时注入 VITE_*
健康检查容器网:http://yudao-server:48080/actuator/health

运行约定

建议
Executors1(与 OnlyOffice 同机时)
内存Web 构建 Node 容器可设 7g;Jenkins 限堆;构建前可临时停 OnlyOffice
Compose使用 docker:27-cli 挂 docker.sock 执行 recreate
品牌 CSS 注入若 Job 覆盖 index.html,发布后需再执行客户 fix_branding_*.py(见上线文档)

访问 Jenkins

公网仅 22/80 时:

bash
ssh -L 8080:127.0.0.1:8080 <USER>@<SERVER_IP>

初始化脚本思路

交付包常提供 scripts/jenkins_setup_pipelines.py:创建 Job、绑定凭据、写入 Jenkinsfile。执行前改默认 IP / Job 名;不要把管理员密码写进脚本仓库。


对齐交付包 ruoyi-office-ms-deploy/jenkins/

流水线资产

文件(示例名)说明
*-service.Jenkinsfile参数化单服务:选模块 → -P cloud -pl :artifactId → Dockerfile → sync-images.sh → SSH 到 ro-app compose up
*-backend-cloud.JenkinsfileP0/P1 批量
*-web.Jenkinsfile管理端 → /data/nginx/html/web
*-uniapp.JenkinsfileH5 → /data/nginx/html/app

现场创建 Job 时,将硬编码演示 IP / 仓库改为客户 Git 与 <RO_APP_IP>

约定

建议
部署资产/data/deploy/ruoyi-office-ms-deploy/
源码(可选)/data/src/ruoyi-office;Codeup 模块不全时用 USE_LOCAL_SRC=true + tar 同步
发布目标<SSH_USER>@<RO_APP_IP> + scripts/sync-images.sh
镜像 tag保留日期/BUILD_NUMBER,勿只靠 latest
健康检查业务多为 /admin/actuator/health;接受 200 或业务约定的 401
Executors≥ 2,避免父子 Job 互相等待死锁

CI 节点要点

  • Jenkins 容器挂载宿主机 /data + docker.sock
  • Jenkins → ro-app:SSH 密钥 + rocky 对 docker 的 NOPASSWD(按交付包)
  • SPRING_CLOUD_NACOS_CONFIG_IMPORT_CHECK_ENABLED=false(若流水线已约定)
  • compose 各服务 SERVER_PORT 与 discovery IP 正确

与首次部署关系

无 Jenkins 时用 scripts/build-images-from-jars.sh 即可完成登录验收。Jenkins 用于后续迭代发布。


现象处理
子 Job 一直排队 / 死锁独立 Job;executors ≥ 2;勿在唯一 executor 上 wait 自身
构建 OOM(单体同机 OO)executor=1;构建前停 OnlyOffice;限制 Node/Jenkins 堆
workspace 路径错容器内路径 ≠ 宿主机;脚本应用宿主机 /data/jenkins/home/workspace/$JOB_NAME
Git 鉴权失败检查 Credentials ID;轮换临时 Token;禁止管理员账号
Codeup 缺模块USE_LOCAL_SRC + 运维机 tar 同步源码到 ro-ci
部署后 web 演示条又出现构建 env 未关 VITE_GLOB_DEMO_ENABLE;或需改 _app.config.js
品牌 Logo 丢失Jenkins 覆盖 index.html 后需重跑 branding 注入脚本
健康检查失败单体走容器服务名;微服务注意 actuator 路径差异
sync-images / SSH 失败核对 <SSH_USER>@RO_APP、密钥、docker 权限、防火墙私网

发布后检查

  1. 对应容器 / 静态目录已更新
  2. curl 登录或 health
  3. 上线文档 抽查演示开关与租户品牌
联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版