From fe38141dc7cff85782b3dab81e4a5f547f873133 Mon Sep 17 00:00:00 2001 From: z Date: Tue, 5 May 2026 20:59:41 +0800 Subject: [PATCH] docs: add testbox daily deploy guide --- testbox/README.md | 177 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) diff --git a/testbox/README.md b/testbox/README.md index c65180e..f433db6 100644 --- a/testbox/README.md +++ b/testbox/README.md @@ -58,6 +58,183 @@ ssh root@43.165.195.39 'bash /opt/chatapp-test/scripts/deploy-from-git-remote.sh The runtime `.env` stays on the server at `/opt/chatapp-test/.env`; git deploys do not overwrite it. +## 新同学日常部署 + +场景:你改了某个 Java 服务或 `chatapp3-admin`,想在测试环境看效果。 + +### 1. 先把代码提交推送 + +测试机只从 Git 拉代码,不依赖你本机目录。所以本机改完以后,必须先提交并推到对应仓库。 + +Java 服务: + +```bash +cd /path/to/chatapp3-java +git status +git add +git commit -m "your change message" +git push origin main +``` + +Admin 前端: + +```bash +cd /path/to/chatapp3-admin +git status +git add +git commit -m "your change message" +git push origin main +``` + +如果同时改了部署脚本、Caddy、测试环境配置模板,则还需要推 `hy-app-monitor`: + +```bash +cd /path/to/hy-app-monitor +git status +git add testbox/ +git commit -m "your change message" +git push origin main +``` + +### 2. 最推荐:一键拉取并全量部署 + +这是新人最稳的方式。脚本会在测试机上拉取最新 Git 代码,合并缺失的 `.env` 默认项,导入 Nacos 配置,构建 Java/Go/cron/admin 镜像,并重启应用。 + +```bash +ssh root@43.165.195.39 'bash /opt/chatapp-test/scripts/deploy-from-git-remote.sh' +``` + +部署完成后看状态: + +```bash +ssh root@43.165.195.39 ' +cd /opt/chatapp-test && +docker compose --env-file .env -f docker-compose.infra.yml -f docker-compose.apps.yml ps +' +``` + +常用访问地址: + +```text +App/API: https://jvapi-test.haiyihy.com +Admin: https://yumi-test-admin.haiyihy.com +``` + +测试 admin 当前内置账号: + +```text +账号:admin +密码:admin +``` + +### 3. 改 Java 服务后怎么看日志 + +服务名和容器名对应关系: + +```text +rc-auth -> auth -> chatapp-test-auth +rc-gateway -> gateway -> chatapp-test-gateway +rc-service-console -> console -> chatapp-test-console +rc-service-other -> other -> chatapp-test-other +rc-service-live -> live -> chatapp-test-live +rc-service-wallet -> wallet -> chatapp-test-wallet +rc-service-order -> order -> chatapp-test-order +rc-service-external -> external -> chatapp-test-external +chatapp3-golang -> golang -> chatapp-test-golang +chatapp-cron -> chatapp-cron +chatapp3-admin -> admin -> chatapp-test-admin +``` + +查看某个服务日志: + +```bash +ssh root@43.165.195.39 ' +cd /opt/chatapp-test && +docker compose --env-file .env -f docker-compose.infra.yml -f docker-compose.apps.yml logs -f --tail=200 order +' +``` + +把上面的 `order` 换成 `other`、`wallet`、`console`、`admin` 等即可。 + +### 4. 进阶:只部署一个 Java 服务 + +日常建议先用一键全量部署。确实只想快速验证某个 Java 服务时,可以在测试机上手动做单服务部署。 + +下面以 `order` 为例: + +```bash +ssh root@43.165.195.39 ' +set -e +cd /opt/chatapp-test/sources/chatapp3-java +git fetch --prune origin main +git checkout -B main origin/main +git reset --hard origin/main + +if [ -x ./ci/install-private-maven.sh ]; then + ./ci/install-private-maven.sh +fi +mvn -Ptest -T 1C -pl rc-service/rc-service-order/order-start -am -Dmaven.test.skip=true package + +cd /opt/chatapp-test +python3 scripts/import-nacos-configs.py +docker compose --env-file .env -f docker-compose.infra.yml -f docker-compose.apps.yml build order +docker compose --env-file .env -f docker-compose.infra.yml -f docker-compose.apps.yml up -d order +' +``` + +常用 Java 服务的 Maven 模块: + +```text +auth rc-auth +gateway rc-gateway +external rc-service/rc-service-external/external-start +console rc-service/rc-service-console/console-start +other rc-service/rc-service-other/other-start +live rc-service/rc-service-live/live-start +wallet rc-service/rc-service-wallet/wallet-start +order rc-service/rc-service-order/order-start +``` + +如果改的是 `gateway` 路由或 Nacos 配置,记得执行 `python3 scripts/import-nacos-configs.py` 后重启 `gateway`。 + +### 5. 进阶:只部署 admin 前端 + +Admin 的接口地址由测试机 `/opt/chatapp-test/.env` 控制: + +```text +TESTBOX_ADMIN_API_BASE_URL=https://yumi-test-admin.haiyihy.com/console +``` + +单独部署 admin: + +```bash +ssh root@43.165.195.39 ' +set -e +cd /opt/chatapp-test/sources/chatapp3-admin +git fetch --prune origin main +git checkout -B main origin/main +git reset --hard origin/main + +cd /opt/chatapp-test +docker build \ + -f docker/chatapp3-admin.Dockerfile \ + --build-arg ADMIN_API_BASE_URL="$(python3 scripts/env-value.py .env TESTBOX_ADMIN_API_BASE_URL https://yumi-test-admin.haiyihy.com/console)" \ + --build-arg ADMIN_OSS_URL="$(python3 scripts/env-value.py .env TESTBOX_ADMIN_OSS_URL "")" \ + -t chatapp-test/admin:testbox \ + /opt/chatapp-test/sources/chatapp3-admin + +docker compose --env-file .env -f docker-compose.infra.yml -f docker-compose.apps.yml up -d admin caddy +' +``` + +### 6. 常见判断 + +- 页面没变化:先确认代码已经 `git push origin main`,再确认测试机仓库已经拉到最新 `git rev-parse --short HEAD`。 +- Java 接口 404:检查 gateway 路由、服务 context-path、Caddy 代理目标。 +- Admin 能打开但接口 401:先确认 `/console/**` 是 admin 域名直连 `console` 服务,不要走 app `gateway`。 +- 服务启动慢:Java 服务重启后 1-3 分钟内 `health: starting` 正常,等健康检查变成 `healthy` 再验证。 +- 只改数据库数据:不用部署代码,直接连测试 MySQL;但基础数据脚本要沉淀到 `testbox/mysql/baseline/` 或业务仓库 SQL 目录。 + ## MySQL baseline Java services need real schema and base config rows. Put sanitized SQL files in: