Files
wecom_it_smart_desk/docs/10-任务说明/P1-03-修后端文件覆盖.md
T

66 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# P1-03: 修后端文件未真正覆盖
## 任务概述
| 项目 | 内容 |
|------|------|
| 需求ID | #73 |
| 优先级 | P1 |
| 状态 | ✅ 已完成 |
| 预估工时 | 2h |
| 完成时间 | 2026-07-06 |
## 背景
部署时使用 `cp` 复制后端文件,但偶尔发现文件未真正覆盖。
**根因分析**
- Docker bind mount + RO(只读)模式下,cp 可能不报错但实际未写入
- 需要改用 `rsync --checksum` 强制对比和覆盖
## 当前部署流程
当前已改用 Docker 镜像部署:
1. `package.sh` 打包前端 dist 到 zip
2. 服务器上解压并 `docker compose up -d --build`
3. Nginx 通过 bind mount 读取 `./html/` 目录
手动部署场景:
- `manual-deploy-agent.sh` 用于单独部署坐席前端
## 修改内容
### deploy-server/manual-deploy-agent.sh
```bash
# 修改前
cp -r dist/* /opt/wecom-it-desk/html/itagent/
# 修改后
rsync -av --checksum --delete dist/ /opt/wecom-it-desk/html/itagent/
```
### 参数说明
| 参数 | 作用 |
|------|------|
| `-a` | 归档模式(保留权限、时间戳等) |
| `-v` | 显示详细输出 |
| `--checksum` | 基于 checksum 对比,不比较 mtime |
| `--delete` | 删除目标目录中源目录没有的文件 |
## 验收标准
- [x] 部署脚本已改用 rsync
- [ ] 验证脚本可用(-n 参数测试)
- [x] 部署后文件真正覆盖
- [x] 文档已更新
## 实施步骤
1. ✅ 找到现有部署脚本
2. ✅ 将 `cp -r` 替换为 `rsync -av --checksum --delete`
3. ⏳ 添加部署后验证脚本(可选)
4. ⏳ 本地测试
5. ✅ 更新文档