Files
ccdi/docs/plans/2026-03-13-ccdi-docker-deployment-backend-implementation.md

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.pyconfig/models/routers/services/utils/requirements.txttests/
  • 排除 __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=localRUOYI_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 composedocker-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后端部署方案"