docs: add testbox daily deploy guide
This commit is contained in:
parent
a991b7426d
commit
fe38141dc7
@ -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
|
The runtime `.env` stays on the server at `/opt/chatapp-test/.env`; git deploys
|
||||||
do not overwrite it.
|
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
|
## MySQL baseline
|
||||||
|
|
||||||
Java services need real schema and base config rows. Put sanitized SQL files in:
|
Java services need real schema and base config rows. Put sanitized SQL files in:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user