165 lines
4.0 KiB
Markdown
165 lines
4.0 KiB
Markdown
# 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`
|