From ca4cbf072f854e3c18bd58c6e41d7bcaf1c0a8b6 Mon Sep 17 00:00:00 2001 From: hajimi Date: Sun, 2 Aug 2026 00:13:43 +0800 Subject: [PATCH] docs: record test environment handoff --- AGENTS.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 8cf9f75..211bc7d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -150,6 +150,10 @@ Set-Location D:\www\gs-sport-era; powershell -ExecutionPolicy Bypass -File .\scr - Docker crawler 任务真实执行入口是 `sport-era-crawler` 容器。更新 `docker/crawler` 源码或 `config/crawler_tasks.yaml` 后,必须在服务器 `docker` 目录执行 `sudo docker compose -f docker-compose.crawler.yml build crawler` 和 `sudo docker compose -f docker-compose.crawler.yml up -d --no-deps crawler`;仅重启旧容器不能保证镜像内代码更新,必要时使用 `--no-cache` 重建。 - 重启 crawler 后必须核验容器内代码和 cron,而不是只看宿主机源码:例如检查 `/app/match_live_stream.py`、`/app/config/crawler_tasks.yaml`,以及 `cat /etc/cron.d/* | grep match_live_stream`。 - 雨燕直播间任务 `match_live_stream` 当前应直接同步 `all_live_rooms.json`,写入主播 `anchor_id`、`anchor_name`、`anchor_avatar`、`anchor_level` 以及直播间观看/关注/公告/简介字段;对应 SQL 为 `docs/sql/alter_match_live_anchor_fields.sql` 和 `docs/sql/insert_crontab_match_live_stream.sql`。上线后用 `la_match_live` 主播字段统计和 `la_crawler_task_log` 最近任务状态共同确认是否生效。 +- 测试服当前使用 Git 分支 `dev.1.0.0`,真实目录为 `/www/wwwroot/test-server.sbnews.net`。同步前先确认远端 `origin`、分支和工作区状态;不要在服务器上用 root 执行日常 `git pull`,否则可能让 `.git/objects` 出现 root/www/ubuntu 混合权限。 +- 测试环境域名反代关系:`test-admin.sbnews.net` → 宿主机 `5176`(Admin Vite)、`testh5.sbnews.net` → `5177`(uni-app H5 Vite)、`test-server.sbnews.net` → `8000`(Docker Nginx/PHP API)。宿主机 Nginx 配置位于 `/www/server/panel/vhost/nginx/` 和对应 `rewrite/` 目录,修改后必须执行 `sudo nginx -t && sudo systemctl reload nginx`。 +- `docker/docker-compose.dev.yml` 当前包含 `crawler` 服务;PHP、scheduler、crawler、Docker Nginx 使用 host network 访问测试服 MySQL/Redis。测试服私有 `docker/.env.server`、`docker/.env.docker` 不入库,数据库/Redis 密码不得写入 Git。 +- `sport-era-kb-worker` 使用 `docker/docker-compose.crawler.yml`,通过 Redis Stream `ai:kb:sync:stream` 消费知识库任务并生成 Embedding,写入 `la_ai_kb_document`/`la_ai_kb_chunk`。测试账号仅授权 `127.0.0.1` 时,worker 必须使用 host network;crawler 镜像需要 `cryptography` 才能连接 MySQL `caching_sha2_password` 认证。 ## 近期踩坑 @@ -159,3 +163,7 @@ Set-Location D:\www\gs-sport-era; powershell -ExecutionPolicy Bypass -File .\scr - 构建产生的 `server/public/admin`、`server/public/mobile` 等产物不要混进提交,提交前先清理临时截图和生成文件。 - **uni-app iOS 端 scroll-view+JS 计算高度 间隙问题**:在 iOS(APP-PLUS/MP)端,通过 `uni.createSelectorQuery()` 计算 `windowHeight - topBar - inputBar` 然后设置 `scroll-view` 的 inline `height` 会因安全区域、设备像素比等因素产生几像素偏差,导致 `scroll-view` 底部与固定输入栏之间出现间隙。**正确做法**:页面使用 `height: 100vh; display: flex; flex-direction: column`,topbar 和 input-bar 设 `flex-shrink: 0`,scroll-view 设 `flex: 1; min-height: 0` 自然填满剩余空间,不再用 JS 计算高度。 - **Vue3 `