docs: document dev server workflow

This commit is contained in:
2026-07-07 18:15:53 +08:00
parent dc760de7a2
commit aa2bd80418

View File

@@ -0,0 +1,110 @@
# 当前源码与开发环境说明
## 结论
当前最新版本源码不在本地 `massive-cloud-export` 目录中,而是在开发服务器 `2680v4`:
```bash
ssh 2680v4
cd /home/lipan/massive-cloud-v3
```
本地 `massive-cloud-export` 更接近旧版离线导出包或历史交付包,可作为历史留档参考;日常开发、联调和问题排查应以 `2680v4:/home/lipan/massive-cloud-v3` 为准。
## 协作方式
- 当前项目由两名开发人员共同维护。
- 日常习惯是直接 SSH 到 `2680v4` 上修改代码。
- 修改目录为 `/home/lipan/massive-cloud-v3`。
- 该目录是当前实际运行服务挂载的源码目录,代码改动会被开发模式服务读取。
- 服务器工作区可能存在其他开发人员的未提交改动,修改前应先查看状态,避免覆盖他人工作:
```bash
git status --short
```
## 外网调试入口
`http://npsx.i-llusion.cn:3002` 不是正式生产环境地址,而是开发环境的公网穿透访问地址。
访问链路为:
```text
外网浏览器
-> http://npsx.i-llusion.cn:3002
-> 内网穿透
-> 2680v4:3002
-> massive-point-cloud-app-dev
```
服务器上存在 `npc` 穿透客户端进程,连接到 `47.106.245.28:8024`,用于把 `2680v4` 上的开发服务暴露到公网,方便外网访问和调试。
## 当前运行方式
当前服务使用开发模式 Docker 编排文件运行:
```bash
cd /home/lipan/massive-cloud-v3
sudo docker compose -f docker-compose.dev.yml ps
```
关键运行信息:
- 应用容器:`massive-point-cloud-app-dev`
- 编排文件:`/home/lipan/massive-cloud-v3/docker-compose.dev.yml`
- 网络模式:`network_mode: host`
- 应用端口:`3002`
- 源码映射:`/home/lipan/massive-cloud-v3:/app`
- 依赖卷:`pointcloud-app-node-modules-dev:/app/node_modules`
- 数据目录映射:`/home/lipan/massive-cloud-v3/data:/data`
- 算法目录映射:`/home/lipan/massive-cloud-v3/alg:/alg:ro`
容器启动后会在 `/app` 中执行:
```bash
pnpm install && pnpm dev --host 0.0.0.0
```
因此,开发人员在宿主机 `/home/lipan/massive-cloud-v3` 中修改的源码,会通过 volume 映射进入容器 `/app`,由容器内的 Node/tsx 开发服务运行。
## Docker 权限
`lipan` 用户当前直接访问 Docker daemon 权限不足,管理容器时需要使用 `sudo`:
```bash
sudo docker ps
sudo docker logs -f massive-point-cloud-app-dev
sudo docker compose -f docker-compose.dev.yml ps
sudo docker compose -f docker-compose.dev.yml restart app
```
## 常用检查命令
```bash
# 登录开发服务器
ssh 2680v4
# 进入当前源码目录
cd /home/lipan/massive-cloud-v3
# 查看代码状态,注意是否有他人改动
git status --short
# 查看当前容器
sudo docker ps
# 查看应用日志
sudo docker logs -f massive-point-cloud-app-dev
# 查看 3002 端口监听
sudo ss -lntp sport = :3002
# 查看穿透进程
pgrep -af "npc|nps|frp"
```
## 注意事项
- `massive-cloud-export` 不是当前最新开发源码目录,后续维护不要以它为准。
- 如果需要保留旧版交付材料,可以继续保留 `massive-cloud-export`;如果要清理,应先确认其中截图、部署包说明、历史交付内容是否还需要留档。
- 直接在服务器改代码时,务必先确认工作区状态,避免覆盖另一名开发人员正在修改的文件。