docs: add test environment runbook
This commit is contained in:
@@ -127,6 +127,91 @@ Set-Location D:\www\gs-sport-era; powershell -ExecutionPolicy Bypass -File .\scr
|
||||
|
||||
- `admin/`、`uniapp/`、`pc/`、`docker/`、`python/`、`qa/`、`scripts/` 等非 `server/` 源码改动必须提交 commit,但不要因此自动同步服务器。`docs/` 等说明文档不触发自动提交或服务器同步。
|
||||
|
||||
## 测试环境命令与 Docker 运行清单
|
||||
|
||||
### Git 同步
|
||||
|
||||
在服务器以 `ubuntu` 用户执行日常 Git 操作;只有 Docker 命令使用 `sudo`:
|
||||
|
||||
```bash
|
||||
cd /www/wwwroot/test-server.sbnews.net
|
||||
git remote -v
|
||||
git fetch origin dev.1.0.0
|
||||
git pull --ff-only
|
||||
```
|
||||
|
||||
如果 `.git/objects` 权限异常,只修复 Git 元数据,不要递归修改整个项目:
|
||||
|
||||
```bash
|
||||
sudo chown -R ubuntu:ubuntu .git
|
||||
sudo chmod -R u+rwX .git
|
||||
```
|
||||
|
||||
如果 `.playwright-mcp/*` 等未跟踪生成文件阻塞拉取,先移动到临时目录,再执行 `git pull --ff-only`:
|
||||
|
||||
```bash
|
||||
backup="/tmp/sport-era-playwright-$(date +%Y%m%d%H%M%S)"
|
||||
mv .playwright-mcp "$backup"
|
||||
git pull --ff-only
|
||||
```
|
||||
|
||||
工作区存在历史改动时,可只同步指定运行文件,避免覆盖其它现场文件:
|
||||
|
||||
```bash
|
||||
git fetch origin dev.1.0.0
|
||||
git checkout -f origin/dev.1.0.0 -- docker/docker-compose.dev.yml docker/docker-compose.crawler.yml docker/crawler
|
||||
```
|
||||
|
||||
### Compose 操作
|
||||
|
||||
```bash
|
||||
cd /www/wwwroot/test-server.sbnews.net/docker
|
||||
|
||||
# 检查配置,不启动服务
|
||||
sudo docker compose -f docker-compose.dev.yml config -q
|
||||
sudo docker compose -f docker-compose.crawler.yml config -q
|
||||
|
||||
# PHP/前端/开发 crawler 环境
|
||||
sudo docker compose -f docker-compose.dev.yml ps
|
||||
sudo docker compose -f docker-compose.dev.yml build crawler
|
||||
sudo docker compose -f docker-compose.dev.yml up -d --no-build --force-recreate --no-deps crawler
|
||||
|
||||
# 知识库 worker:依赖、Dockerfile 或 kb_worker.py 变化后必须重建
|
||||
sudo docker compose -f docker-compose.crawler.yml build kb-worker
|
||||
sudo docker compose -f docker-compose.crawler.yml up -d --no-build --force-recreate --no-deps kb-worker
|
||||
sudo docker compose -f docker-compose.crawler.yml ps kb-worker
|
||||
sudo docker logs --tail 100 sport-era-kb-worker
|
||||
```
|
||||
|
||||
### 当前容器职责
|
||||
|
||||
| 容器/服务 | 作用 | 网络与端口 |
|
||||
| --- | --- | --- |
|
||||
| `sport-era-dev-server-1` | PHP ThinkPHP API | host network,Docker Nginx 对外 `8000` |
|
||||
| `sport-era-dev-scheduler-1` | 每分钟执行 `php think crontab` | host network |
|
||||
| `sport-era-crawler` | Python 爬虫与容器 cron | host network,共用 crawler `logs/data` |
|
||||
| `sport-era-kb-worker` | 消费 Redis Stream,生成 Embedding,写入 AI 知识库 | host network,Redis Stream `ai:kb:sync:stream` |
|
||||
| `sport-era-dev-nginx-1` | Docker 内 Nginx/PHP-FPM 反代 | host network,监听 `8000` |
|
||||
| `sport-era-dev-admin-1` | Admin Vite 开发服务器 | `5176` |
|
||||
| `sport-era-dev-uniapp-h5-1` | uni-app H5 Vite 开发服务器 | `5177` |
|
||||
|
||||
当前 Compose 不启动 MySQL/Redis 容器,使用测试服外部 MySQL `3300` 和 Redis `6377`;私有连接参数只放在 `docker/.env.server`、`docker/.env.docker`。
|
||||
|
||||
### 宿主机 Nginx 与访问验证
|
||||
|
||||
修改三个测试域名反代后执行:
|
||||
|
||||
```bash
|
||||
sudo nginx -t
|
||||
sudo systemctl reload nginx
|
||||
|
||||
curl -kI https://test-admin.sbnews.net/
|
||||
curl -kI https://testh5.sbnews.net/
|
||||
curl -kI https://test-server.sbnews.net/api/index/config
|
||||
```
|
||||
|
||||
域名映射为:Admin → `5176`,H5 → `5177`,Server/API → `8000`。Admin/H5 当前是 Vite 开发模式,首屏慢时优先检查 Vite 模块转换;需要稳定快速访问时改用生产构建并由 Nginx 托管静态资源。
|
||||
|
||||
## 设计稿映射
|
||||
|
||||
设计稿与页面/组件映射统一维护在:
|
||||
|
||||
Reference in New Issue
Block a user