Skip to content

方案 B:宝塔 Nginx + Compose 数据层(逐步操作)

本方案:宝塔只跑 Nginx。MySQL、Redis、后端全部在 Docker Compose 里。
机器上已经有宝塔 MySQL、还想复用 3306 → 用 方案 A
不要在这台机再点「安装 Mysql 环境」。

打包说明见 如何打安装包


0. 这套方案长什么样

组件谁提供端口(宿主机)
网站入口宝塔 Nginx80
前端/www/wwwroot/ruoyi-office/web/web/
后端容器 ruoyi-yudao127.0.0.1:48080
数据库容器 ruoyi-mysql(镜像 mysql:8.0)127.0.0.1:13306(避开宝塔 3306)
缓存容器 ruoyi-redis127.0.0.1:16379

建议机器:≥ 4 核 8G。8G 内存时后端容器限制约 2G-Xmx1g),再小容易启动到一半被系统杀掉。磁盘建议 ≥ 80G。必须能上外网(拉 mysql / redis / eclipse-temurin 镜像)。


1. 登录宝塔面板

  1. 打开 https://服务器IP:面板端口/安全入口。证书自签,点 高级 → 继续访问
  2. 登录。绑定手机可跳过。
  3. 安全入口写错会 404(nginx 字样),用服务器上 bt default 核对当前地址。

2. 软件商店:只装 Nginx 和 Docker

打开 软件商店

  1. 安装 Nginx(1.22 / 1.24 均可)→ 运行中。
  2. 安装 Docker(含 Compose)→ 运行中。
  3. 终端检查:
bash
nginx -v
docker version
docker compose version || docker-compose version

2.1 为什么「数据库」是空的?

打开 数据库 → MySQL 会看到「当前未安装 Mysql 环境」——这是方案 B 的正常状态

方案 B 不要安装宝塔 MySQL

中间那个 「安装 Mysql 环境」不要点。点了会占用 3306,和 Compose 里的库两套打架。

本包的库在 Docker 里,宿主机端口是 13306,不进宝塔数据库菜单。

2.2 为什么「网站 → PHP 项目」是空的?

安装脚本直接写 Nginx 配置文件,不会在 PHP 项目里点「添加站点」:

方案 B 的 PHP 站点列表为空是正常的

请看 文件 里的 /www/wwwroot/ruoyi-office/webvhost/nginx/ruoyi-office.conf,或直接用浏览器打开 /web/

2.3 为什么 Docker「应用商店 → 已安装」是空的?

那是宝塔应用市场装的模板,我们用的是 命令行 Compose,不会出现在这里:

Docker 应用商店已安装为空

请改点顶部 「容器」「Compose 编排」。装完后应看到三个容器:

  • ruoyi-yudao
  • ruoyi-mysql
  • ruoyi-redis

3. 上传安装包

  1. 如何打安装包 准备目录或 zip。
  2. 宝塔 文件/opt/ → 上传并解压为:
text
/opt/ruoyi-office-pack/
  install.sh
  compose/
  sql/
  web/
  app/yudao-server.jar

4. 填写 compose/.env(方案 B 专用)

DEPLOY_MODE=b 不要改成 a。

env
DEPLOY_MODE=b
SITE_HOST=192.168.1.20
HTTP_PORT=80

MYSQL_HOST=127.0.0.1
MYSQL_PORT=13306
MYSQL_DATABASE=ruoyi-office
MYSQL_USERNAME=ruoyi
MYSQL_PASSWORD=请改成一套足够长的密码

REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=请改成Redis密码

DRUID_USERNAME=admin
DRUID_PASSWORD=请改成监控台密码

JAVA_OPTS="-Xms512m -Xmx1g -Djava.security.egd=file:/dev/./urandom"
YUDAO_IMAGE_TAG=latest

说明:

怎么填
SITE_HOST办公电脑访问用的 IP/域名,不要写 127.0.0.1
MYSQL_PASSWORDCompose 里 MySQL 的 root 和业务用户都用这串(镜像官方变量)
MYSQL_PORT给宿主机映射用,容器内部仍是 3306;保持 13306
REDIS_HOST必须写 redis(compose 服务名),不要写 127.0.0.1
REDIS_PASSWORD必填,会写入 redis.confrequirepass
JAVA_OPTS加双引号;8G 机器不要把 -Xmx 调到 2g 以上,容易把整机打满
MYSQL_ROOT_PASSWORD方案 B 不必填(root 就是上面的 MYSQL_PASSWORD

内存 16G 以上才考虑把 JAVA_OPTS 调到 -Xmx2g,并把 compose 里 yudao 的 mem_limit 一起加大。


5. 终端执行首装

bash
cd /opt/ruoyi-office-pack
sed -i 's/\r$//' install.sh update.sh health.sh scripts/*.sh compose/.env
chmod +x install.sh update.sh health.sh scripts/*.sh
bash install.sh

首次会:

  1. 构建 ruoyi-office 镜像(jar + temurin JRE)
  2. docker compose up 拉起 mysql、redis、yudao(mysql 健康检查通过后才导库)
  3. 导入 schema + static_data(几分钟)
  4. 写 Nginx 并 reload
  5. 等待 http://127.0.0.1:48080/actuator/health 为 UP(启动约 1~2 分钟)

若 yudao 日志里出现 Killed:内存不够,确认 compose 中 yudao mem_limit2g,且 JAVA_OPTS-Xmx1g。实验室 8G 机在 1.5G 限制下会被杀掉。


6. 在宝塔里怎么核对

去哪看应该看到
Docker → 容器ruoyi-yudaoruoyi-mysqlruoyi-redis 均为 Up / healthy
文件 /www/wwwroot/ruoyi-office/web/index.html存在
文件 /www/server/panel/vhost/nginx/ruoyi-office.confserver_name = SITE_HOST
数据库 → MySQL仍提示未安装 —— 正常,不要装
浏览器http://SITE_HOST/web/

用服务器本机 curl 127.0.0.1/web/ 可能 404,请用办公电脑访问 IP,或 curl 时加 Host: SITE_HOST


7. 浏览器验收

打开 http://SITE_HOST/web/,租户选 宇擎源码,账号 admin(密码见交付清单;实验室为 admin123)。

工作台:

方案 B 登录后工作台

用户管理(有组织树和用户列表即表示库已导入、反代正常):

方案 B 用户管理


8. 以后更新

bash
cd /opt/ruoyi-office-pack
bash update.sh

只换镜像和前端,不重建 MySQL 数据卷(/opt/ruoyi-office/mysql/data)。误删该目录等于毁库。


9. 排障

bash
bash /opt/ruoyi-office/scripts/health.sh
docker ps
docker logs --tail 80 ruoyi-yudao
docker logs --tail 40 ruoyi-mysql
现象处理
宝塔数据库/PHP/Docker 应用商店是空的方案 B 正常,见第 2 节
yudao 反复重启、日志 Killed加内存或确认 2G 限制 + -Xmx1g
MySQL 容器起不来MYSQL_PASSWORD、数据目录权限
Redis AUTH 失败.envREDIS_PASSWORD 必须和 redis.conf 里一致(脚本按 CHANGE_ME_REDIS 替换)
拉镜像失败给 Docker 配国内镜像加速
JAVA_OPTS 导致 source 失败整段加双引号

10. 生产建议

  • 确认三个容器 restart: always 已在跑(compose 默认 always)。
  • 需要滑块验证码时,把 /opt/ruoyi-office/app/config/application-prod.yamlyudao.captcha.enable 改为 true,再 docker compose up -d --force-recreate yudao-server
  • 13306 / 16379 / 48080 只绑在 127.0.0.1,不要对公网开放。
  • 改掉 admin 默认密码。
联系我们

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

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版