Files
massive-cloud/docs/开发环境与协作方式.md

3.3 KiB
Raw Blame History

当前源码与开发环境说明

结论

当前最新版本源码不在本地 massive-cloud-export 目录中,而是在开发服务器 2680v4:

ssh 2680v4
cd /home/lipan/massive-cloud-v3

本地 massive-cloud-export 更接近旧版离线导出包或历史交付包,可作为历史留档参考;日常开发、联调和问题排查应以 2680v4:/home/lipan/massive-cloud-v3 为准。

协作方式

  • 当前项目由两名开发人员共同维护。
  • 日常习惯是直接 SSH 到 2680v4 上修改代码。
  • 修改目录为 /home/lipan/massive-cloud-v3。
  • 该目录是当前实际运行服务挂载的源码目录,代码改动会被开发模式服务读取。
  • 服务器工作区可能存在其他开发人员的未提交改动,修改前应先查看状态,避免覆盖他人工作:
git status --short

外网调试入口

http://npsx.i-llusion.cn:3002 不是正式生产环境地址,而是开发环境的公网穿透访问地址。

访问链路为:

外网浏览器
  -> http://npsx.i-llusion.cn:3002
  -> 内网穿透
  -> 2680v4:3002
  -> massive-point-cloud-app-dev

服务器上存在 npc 穿透客户端进程,连接到 47.106.245.28:8024,用于把 2680v4 上的开发服务暴露到公网,方便外网访问和调试。

当前运行方式

当前服务使用开发模式 Docker 编排文件运行:

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 中执行:

pnpm install && pnpm dev --host 0.0.0.0

因此,开发人员在宿主机 /home/lipan/massive-cloud-v3 中修改的源码,会通过 volume 映射进入容器 /app,由容器内的 Node/tsx 开发服务运行。

Docker 权限

lipan 用户当前直接访问 Docker daemon 权限不足,管理容器时需要使用 sudo:

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

常用检查命令

# 登录开发服务器
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;如果要清理,应先确认其中截图、部署包说明、历史交付内容是否还需要留档。
  • 直接在服务器改代码时,务必先确认工作区状态,避免覆盖另一名开发人员正在修改的文件。