4.3 KiB
4.3 KiB
localbox部署
chatapp3 的线上部署已经迁移到 hy-app-monitor。这个目录只保留本地部署、本地构建、本地检查和本地联调能力。
目录结构
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部署 目录执行:
./deploy.sh start
start 默认只在本地 Java jar 缺失时构建。已有 jar 时会直接启动本地环境。
如果想强制重新构建再启动:
./deploy.sh start --rebuild
如果只想启动、不检查和构建本地 Java jar:
./deploy.sh start --skip-build
如果只起基础设施,不起业务服务:
./deploy.sh start --infra-only
如果只想单独起轻量基础设施(MySQL + Redis):
docker compose --env-file ./.env.local -f ./local-infra.compose.yml up -d
常用命令
重新构建全部 Java 服务:
./deploy.sh build
只构建指定服务:
./deploy.sh build auth live other
检查全部本地服务状态:
./deploy.sh check
重启单个服务:
./deploy.sh restart live
./deploy.sh restart golang
./deploy.sh restart mysql
./deploy.sh restart rocketmq
重新构建并重启某个 Java 服务:
./deploy.sh restart --rebuild auth
./deploy.sh restart --rebuild live
重新发布本地 Nacos 配置:
./deploy.sh publish-nacos
启动流程
默认启动流程如下:
- 安装
chatapp3-java/maven_private私有 Maven 包到本地 Maven 仓库。 - 本地 Java jar 缺失或显式传入
--rebuild时,使用localprofile 构建本地 Java jar,默认JAVA_MAVEN_THREADS=1C开启 Maven reactor 并行。 - 启动本地 MySQL、Redis、Mongo、Nacos、Zookeeper。
- 当
LIKEI_ROCKETMQ_LOCAL_DISABLE=false时,额外启动本地 RocketMQ。 - 并发等待基础设施就绪后,发布本地 Nacos 配置。
- 启动全部 Java 服务和
chatapp3-golang,并发等待端口就绪。
脚本会优先复用当前可用的 Docker Desktop daemon;如果 Docker Desktop 还没起来,会尝试自动拉起。
RocketMQ 开关
本地幸运礼物全链路默认可以启用 RocketMQ。开关在目录根部 .env.local:
LIKEI_ROCKETMQ_LOCAL_DISABLE=false
LIKEI_ROCKETMQ_ENDPOINT=rocketmq-proxy:8081
如果只想先把 other 跑起来、不走 MQ:
LIKEI_ROCKETMQ_LOCAL_DISABLE=true
脚本会自动给 other 补上 RocketMQAutoConfiguration 的排除参数。
常用排查
查看 compose 状态:
docker compose --env-file ./.env.local -f ./local-services.compose.yml ps
查看服务日志:
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:1100auth:1000wallet:2000other:2400live:2500order:2600console:2700external:3000visual-monitor:8000scheduling:2800golang:2900nacos:8848rocketmq namesrv:19876rocketmq proxy http:18080rocketmq proxy grpc:18081mysql:13306redis:16379mongo:27018