3.9 KiB
CCDI Docker 后端部署 Implementation Plan
For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
Goal: 为 Spring Boot 后端与 lsfx mock server 建立可构建、可上传、可在服务器运行的 Docker 部署链路。
Architecture: 后端产物继续使用 Maven 构建出的 ruoyi-admin.jar,运行时通过 Java 21 容器加载 local profile。lsfx mock server 作为独立 Python 服务纳入仓库,并在 Compose 中与后端共享网络命名空间,以兼容现有 http://localhost:8000 配置。
Tech Stack: Maven, Spring Boot 3, Java 21, Docker Compose, Python 3.11, FastAPI, PowerShell, Paramiko
Task 1: 整理 lsfx mock server 到主仓库
Files:
- Create:
lsfx-mock-server/** - Modify:
docs/plans/2026-03-13-ccdi-docker-deployment-design.md - Test:
lsfx-mock-server/tests/test_api.py
Step 1: 复制并清理运行文件
- 从现有工作树复制
main.py、config/、models/、routers/、services/、utils/、requirements.txt、tests/ - 排除
__pycache__、.pytest_cache
Step 2: 运行 mock server 测试
Run: python -m pytest lsfx-mock-server/tests -q
Expected: 测试通过,接口与健康检查可用
Step 3: 修正最小必要问题
- 若路径、依赖或导入失败,仅做最小修复
Step 4: 记录目录用途
- 在
lsfx-mock-server/README.md补充与主项目集成的启动说明
Task 2: 编写后端与 mock 的 Docker 文件
Files:
- Create:
docker/backend/Dockerfile - Create:
docker/mock/Dockerfile - Modify:
lsfx-mock-server/README.md
Step 1: 创建后端镜像定义
- 使用 Java 21 运行时镜像
- 工作目录统一为
/app - 复制
backend/ruoyi-admin.jar - 默认入口使用
java -jar /app/ruoyi-admin.jar
Step 2: 创建 mock 镜像定义
- 使用
python:3.11-slim - 安装
lsfx-mock-server/requirements.txt - 启动
python main.py
Step 3: 本地验证镜像定义
Run: docker build -f docker/mock/Dockerfile -t ccdi-lsfx-mock:test .
Expected: 构建成功
Task 3: 编写 Compose 编排
Files:
- Create:
docker-compose.yml - Create:
.env.example
Step 1: 定义 backend 服务
- 端口映射
62318:8080 - 环境变量包含
SPRING_PROFILES_ACTIVE=local与RUOYI_PROFILE=/app/data/ruoyi - 卷挂载运行目录与日志目录
Step 2: 定义 lsfx-mock-server 服务
- 使用
network_mode: "service:backend" - 依赖
backend - 不额外对外暴露端口
Step 3: 做配置校验
Run: docker compose config
Expected: Compose 文件能正常展开且无语法错误
Task 4: 编写后端打包与远端部署脚本
Files:
- Create:
deploy/deploy.ps1 - Create:
deploy/remote-deploy.py
Step 1: 编写本地打包流程
- 执行 Maven 打包
- 收集
ruoyi-admin.jar - 检查
lsfx-mock-server运行文件完整性
Step 2: 编写上传脚本
- 使用 Paramiko 建立 SSH 与 SFTP 连接
- 创建远端目录
/volume1/webapp/ccdi - 上传 Compose、Dockerfile、后端 JAR、mock 目录
Step 3: 编写远端启动命令
- 兼容
docker compose与docker-compose - 执行
up -d --build - 返回容器状态与后端日志摘要
Task 5: 构建与联调验证
Files:
- Modify:
docs/plans/2026-03-13-ccdi-docker-deployment-design.md
Step 1: 本地构建后端
Run: mvn clean package -DskipTests
Expected: ruoyi-admin/target/ruoyi-admin.jar 生成成功
Step 2: 本地跑通 Compose 校验
Run: docker compose config
Expected: 无错误
Step 3: 远端部署验证
- 验证
backend容器启动 - 验证
mock server在后端网络命名空间内可访问 - 验证
http://116.62.17.81:62318/swagger-ui/index.html
Step 4: 提交
git add lsfx-mock-server docker docker-compose.yml .env.example deploy docs/plans/2026-03-13-ccdi-docker-deployment-*.md
git commit -m "新增Docker后端部署方案"