mirror of
https://gitee.com/pnoker/iot-dc3.git
synced 2026-11-02 11:11:57 +08:00
147 lines
3.5 KiB
Markdown
147 lines
3.5 KiB
Markdown
# 快速开始
|
||
|
||
从源码到运行,一站式本地开发流程。
|
||
|
||
!!! note "运行目录"
|
||
除非特别说明,下文命令都在仓库根目录执行。
|
||
|
||
## 前置依赖
|
||
|
||
- JDK 21
|
||
- Maven 3.9+
|
||
- Podman 或 Docker
|
||
- Make(可选,但推荐)
|
||
|
||
## 1. 启动基础设施
|
||
|
||
```bash
|
||
# 全球镜像源
|
||
make dev-db
|
||
|
||
# 中国大陆镜像源
|
||
make dev-db REGISTRY=cn
|
||
```
|
||
|
||
会拉起 PostgreSQL 与 RabbitMQ。
|
||
|
||
## 2. (可选)启动可选依赖
|
||
|
||
```bash
|
||
make dev-optional
|
||
# 或
|
||
make dev-optional REGISTRY=cn
|
||
```
|
||
|
||
通常用于 EMQX 等 MQTT broker。
|
||
|
||
## 3. 加载环境变量(源码运行可选)
|
||
|
||
```bash
|
||
source dc3/env/dev.env.sh
|
||
```
|
||
|
||
文件中会导出数据库、消息中间件、gRPC 目标、可选 AI 集成等开发默认值。
|
||
|
||
根目录 `.env.example` 与 `dc3/env/dev.env(.sh)` 的具体区别参见 [环境变量](environment.md)。
|
||
|
||
## 4. 在 JetBrains IDEA 中运行
|
||
|
||
IDEA 运行配置可使用 `dc3/env/dev.env` 配合 EnvFile 插件,或将其键值对粘贴到运行配置的环境变量中。仅在需要时按服务覆盖:
|
||
`SERVER_PORT`、`GRPC_SERVER_PORT`、`TCP_PORT`、`UDP_PORT`、`POSTGRES_SCHEMA`。
|
||
|
||
详情见 [环境变量 § JetBrains IDEA](environment.md)。
|
||
|
||
## 5. 源码构建
|
||
|
||
```bash
|
||
# 并行构建(快)
|
||
mvn -s .mvn/settings.xml clean package
|
||
|
||
# 部署 API/Common 模块(如有需要)
|
||
make deploy
|
||
```
|
||
|
||
仓库已配置:
|
||
|
||
- 并行构建(`-T 1C`)
|
||
- 打包跳过测试(`-Dmaven.test.skip=true`)
|
||
- 强制 JDK 21、Maven 3.9+
|
||
- Spring Java Format 校验
|
||
|
||
## 6. 启动服务(推荐顺序)
|
||
|
||
```bash
|
||
java -jar dc3-gateway/target/dc3-gateway.jar
|
||
java -jar dc3-center/dc3-center-auth/target/dc3-center-auth.jar
|
||
java -jar dc3-center/dc3-center-data/target/dc3-center-data.jar
|
||
java -jar dc3-center/dc3-center-manager/target/dc3-center-manager.jar
|
||
java -jar dc3-center/dc3-center-agentic/target/dc3-center-agentic.jar
|
||
java -jar dc3-driver/dc3-driver-virtual/target/dc3-driver-virtual.jar
|
||
```
|
||
|
||
## 7. 通过 Compose 启动(替代方式)
|
||
|
||
```bash
|
||
# 本地开发栈
|
||
make dev
|
||
make dev REGISTRY=cn
|
||
|
||
# 完整本地环境(db + optional + dev)
|
||
make dev-all
|
||
make dev-all REGISTRY=cn
|
||
|
||
# 打包镜像应用栈
|
||
make app
|
||
make app REGISTRY=cn
|
||
make app-all REGISTRY=cn
|
||
```
|
||
|
||
## 8. 常用维护命令
|
||
|
||
```bash
|
||
# 打印解析后的 compose 文件
|
||
make compose-file STACK=dev
|
||
|
||
# 查看日志
|
||
make compose-logs STACK=dev
|
||
|
||
# 容器状态
|
||
make compose-ps STACK=dev
|
||
|
||
# 重启
|
||
make compose-restart STACK=dev
|
||
|
||
# 仅启动选定服务(前端/接口测试)
|
||
make dev-db REGISTRY=cn
|
||
make up SERVICES="gateway agentic" REGISTRY=cn
|
||
make logs SERVICES="gateway agentic"
|
||
```
|
||
|
||
## 9. 默认服务端口
|
||
|
||
| 服务 | HTTP | gRPC |
|
||
|----------------|------|------|
|
||
| Gateway | 8000 | - |
|
||
| Auth Center | 8300 | 9300 |
|
||
| Manager Center | 8400 | 9400 |
|
||
| Data Center | 8500 | 9500 |
|
||
| Agentic Center | 8600 | - |
|
||
|
||
## 10. 推荐本地工作流
|
||
|
||
1. `make dev-db`
|
||
2. `mvn -s .mvn/settings.xml clean package`
|
||
3. 按 Gateway → Auth → Data → Manager → Agentic → Driver 顺序启动
|
||
4. 通过 Gateway `http://localhost:8000/api/v3/...` 测试 API
|
||
5. 如需可观测栈,待核心平台稳定后再启动 Grafana / ELK
|
||
|
||
## 11. 常见坑
|
||
|
||
- 如果 pre/pro profile 需要 Nacos,确保注册中心可用
|
||
- 端口被占用时,可在根 `.env` 中覆盖 Compose 发布端口,或通过服务级环境变量覆盖进程端口
|
||
- 调试时如希望单 JVM 跑全部服务,使用 `dc3-center-single`:
|
||
|
||
```bash
|
||
java -jar dc3-center/dc3-center-single/target/dc3-center-single.jar
|
||
```
|