2026-05-09 10:40:17 +08:00

165 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# localbox部署
`chatapp3` 的线上部署已经迁移到 `hy-app-monitor`。这个目录只保留本地部署、本地构建、本地检查和本地联调能力。
## 目录结构
```text
localbox部署/
├── deploy.sh # 统一入口
├── start_local_services.sh # 启动本地环境
├── build_local_backend.sh # 构建本地 Java 后端
├── restart_local_service.sh # 重启单个服务
├── check_local_services.sh # 检查本地服务状态
├── publish_local_nacos_configs.sh
├── local-services.compose.yml # 本地完整环境 compose
├── local-infra.compose.yml # 轻量基础设施 compose
├── local-infra/ # MySQL / RocketMQ 初始化文件
├── .env.local # 本地环境变量
└── var/ # 本地缓存和构建产物(已忽略)
```
## 前置条件
- macOS 已安装 Docker Desktop
- 如需重新编译 Java当前终端使用 `JDK 17`
- 工作区中存在 `chatapp3-java``chatapp3-golang`
- 目录根部 `.env.local` 已准备好本地配置
脚本会自动识别现有的 `../../chatapp3/chatapp3-java``../../chatapp3/chatapp3-golang`。如果本地目录不同,可以通过 `LIKEI_WORKSPACE_DIR``LIKEI_LOCAL_JAVA_REPO_DIR``LIKEI_LOCAL_GOLANG_REPO_DIR` 覆盖。
## 快速开始
推荐统一从 `hy-app-monitor/localbox部署` 目录执行:
```bash
./deploy.sh start
```
如果只想启动、不重新构建本地 Java jar
```bash
./deploy.sh start --skip-build
```
如果只起基础设施,不起业务服务:
```bash
./deploy.sh start --infra-only
```
如果只想单独起轻量基础设施MySQL + Redis
```bash
docker compose --env-file ./.env.local -f ./local-infra.compose.yml up -d
```
## 常用命令
重新构建全部 Java 服务:
```bash
./deploy.sh build
```
只构建指定服务:
```bash
./deploy.sh build auth live other
```
检查全部本地服务状态:
```bash
./deploy.sh check
```
重启单个服务:
```bash
./deploy.sh restart live
./deploy.sh restart golang
./deploy.sh restart mysql
./deploy.sh restart rocketmq
```
重新构建并重启某个 Java 服务:
```bash
./deploy.sh restart --rebuild auth
./deploy.sh restart --rebuild live
```
重新发布本地 Nacos 配置:
```bash
./deploy.sh publish-nacos
```
## 启动流程
默认启动流程如下:
1. 安装 `chatapp3-java/maven_private` 私有 Maven 包到本地 Maven 仓库。
2. 当前终端为 `JDK 17` 时,使用 `local` profile 构建本地 Java jar。
3. 启动本地 MySQL、Redis、Mongo、Nacos、Zookeeper。
4.`LIKEI_ROCKETMQ_LOCAL_DISABLE=false` 时,额外启动本地 RocketMQ。
5. 发布本地 Nacos 配置。
6. 启动全部 Java 服务和 `chatapp3-golang`
脚本会优先复用当前可用的 Docker Desktop daemon如果 Docker Desktop 还没起来,会尝试自动拉起。
## RocketMQ 开关
本地幸运礼物全链路默认可以启用 RocketMQ。开关在目录根部 `.env.local`
```bash
LIKEI_ROCKETMQ_LOCAL_DISABLE=false
LIKEI_ROCKETMQ_ENDPOINT=rocketmq-proxy:8081
```
如果只想先把 `other` 跑起来、不走 MQ
```bash
LIKEI_ROCKETMQ_LOCAL_DISABLE=true
```
脚本会自动给 `other` 补上 `RocketMQAutoConfiguration` 的排除参数。
## 常用排查
查看 compose 状态:
```bash
docker compose --env-file ./.env.local -f ./local-services.compose.yml ps
```
查看服务日志:
```bash
docker compose --env-file ./.env.local -f ./local-services.compose.yml logs -f live
docker compose --env-file ./.env.local -f ./local-services.compose.yml logs -f golang
```
## 本地端口
- `gateway`: `1100`
- `auth`: `1000`
- `wallet`: `2000`
- `other`: `2400`
- `live`: `2500`
- `order`: `2600`
- `console`: `2700`
- `external`: `3000`
- `visual-monitor`: `8000`
- `game-fruit`: `8001`
- `scheduling`: `2800`
- `golang`: `2900`
- `nacos`: `8848`
- `rocketmq namesrv`: `19876`
- `rocketmq proxy http`: `18080`
- `rocketmq proxy grpc`: `18081`
- `mysql`: `13306`
- `redis`: `16379`
- `mongo`: `27018`