docs: add testbox daily deploy guide

This commit is contained in:
z 2026-05-05 20:59:41 +08:00
parent a991b7426d
commit fe38141dc7

View File

@ -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 <changed-files>
git commit -m "your change message"
git push origin main
```
Admin 前端:
```bash
cd /path/to/chatapp3-admin
git status
git add <changed-files>
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/<changed-files>
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: