2.5 KiB
CCDI Docker 前端部署 Implementation Plan
For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
Goal: 为 Vue 前端建立可打包、可容器化、可上传并在服务器通过 Nginx 对外提供服务的 Docker 部署链路。
Architecture: 前端继续使用现有 npm run build:prod 产出 dist,容器内由 Nginx 提供静态资源与反向代理。通过 /prod-api 与 /v3/api-docs 将请求转发到后端容器,保持现有业务代码与生产环境变量不变。
Tech Stack: Vue 2, npm, Nginx, Docker Compose, PowerShell, Paramiko
Task 1: 定义前端容器与 Nginx 代理
Files:
- Create:
docker/frontend/Dockerfile - Create:
docker/frontend/nginx.conf - Modify:
docs/plans/2026-03-13-ccdi-docker-deployment-design.md
Step 1: 创建前端镜像定义
- 基于
nginx:stable-alpine - 复制
frontend/dist到 Nginx 静态目录 - 复制自定义
nginx.conf
Step 2: 配置反向代理
/返回前端index.html/prod-api/代理到http://backend:8080//v3/api-docs/代理到http://backend:8080/v3/api-docs/
Step 3: 校验 Nginx 配置
Run: docker run --rm -v ${PWD}/docker/frontend/nginx.conf:/etc/nginx/conf.d/default.conf:ro nginx:stable-alpine nginx -t
Expected: syntax is ok
Task 2: 编写前端打包收集流程
Files:
- Modify:
deploy/deploy.ps1 - Create:
frontend/.gitkeep
Step 1: 构建前端
Run: npm --prefix ruoyi-ui run build:prod
Expected: ruoyi-ui/dist 生成成功
Step 2: 收集部署目录
- 将
ruoyi-ui/dist复制到frontend/dist - 保持部署目录与 Dockerfile 输入一致
Task 3: 将前端加入 Compose
Files:
- Modify:
docker-compose.yml - Modify:
.env.example
Step 1: 定义 frontend 服务
- 暴露
62319:80 - 依赖
backend
Step 2: 校验 Compose
Run: docker compose config
Expected: 前端服务、依赖与端口映射正确
Task 4: 联调验证
Files:
- Modify:
docs/plans/2026-03-13-ccdi-docker-deployment-design.md
Step 1: 检查前端生产产物
- 验证
dist/index.html与static/文件生成
Step 2: 远端验证访问
- 验证
http://116.62.17.81:62319 - 登录后检查浏览器请求是否发往
/prod-api - 验证 Swagger 页面可通过前端入口转发访问
Step 3: 提交
git add docker/frontend deploy/deploy.ps1 docker-compose.yml .env.example docs/plans/2026-03-13-ccdi-docker-deployment-*.md
git commit -m "新增Docker前端部署方案"