189 lines
4.3 KiB
Markdown
189 lines
4.3 KiB
Markdown
|
|
# Urban Lifeline Docker 部署指南
|
|||
|
|
|
|||
|
|
## 目录结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
docker/
|
|||
|
|
├── docker-compose.yml # 总控 compose 文件
|
|||
|
|
├── Makefile # 构建管理脚本
|
|||
|
|
├── .env.example # 环境变量模板
|
|||
|
|
├── README.md # 本文档
|
|||
|
|
│
|
|||
|
|
├── infra/ # Level 1: 基础设施
|
|||
|
|
│ └── docker-compose.yml # Nacos, MinIO, Jitsi Meet
|
|||
|
|
│
|
|||
|
|
├── urbanLifeline/
|
|||
|
|
│ ├── serv/ # Level 2: 后端服务
|
|||
|
|
│ │ ├── docker-compose.yml
|
|||
|
|
│ │ ├── Dockerfile.base # 基础镜像
|
|||
|
|
│ │ ├── Dockerfile.template # 服务镜像模板
|
|||
|
|
│ │ └── start.sh # 启动脚本
|
|||
|
|
│ │
|
|||
|
|
│ └── web/ # Level 3: 前端服务
|
|||
|
|
│ ├── docker-compose.yml
|
|||
|
|
│ ├── Dockerfile
|
|||
|
|
│ └── nginx/ # Nginx 配置
|
|||
|
|
│ ├── nginx.conf
|
|||
|
|
│ └── conf.d/
|
|||
|
|
│
|
|||
|
|
├── dify/ # Dify AI 平台(独立管理)
|
|||
|
|
│ └── docker-compose.yaml
|
|||
|
|
│
|
|||
|
|
├── volumes/ # 数据卷目录
|
|||
|
|
│ ├── nacos/
|
|||
|
|
│ ├── minio/
|
|||
|
|
│ ├── jitsi/
|
|||
|
|
│ └── logs/
|
|||
|
|
│
|
|||
|
|
└── output/ # 镜像导出目录
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
### 1. 准备环境
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 复制环境变量配置
|
|||
|
|
cp .env.example .env
|
|||
|
|
|
|||
|
|
# 编辑配置(根据实际环境修改)
|
|||
|
|
vim .env
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 编译项目
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 编译所有后端服务
|
|||
|
|
make compile-serv
|
|||
|
|
|
|||
|
|
# 编译所有前端项目
|
|||
|
|
make compile-web
|
|||
|
|
|
|||
|
|
# 或者一次性编译所有
|
|||
|
|
make full-build
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 构建镜像
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 构建基础镜像(首次需要)
|
|||
|
|
make build-base
|
|||
|
|
|
|||
|
|
# 构建所有镜像
|
|||
|
|
make build-all
|
|||
|
|
|
|||
|
|
# 或者单独构建
|
|||
|
|
make build-gateway
|
|||
|
|
make build-system
|
|||
|
|
make build-web
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. 启动服务
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 启动所有服务
|
|||
|
|
make up
|
|||
|
|
|
|||
|
|
# 或者分层启动
|
|||
|
|
make up-infra # 先启动基础设施
|
|||
|
|
make up-serv # 再启动后端服务
|
|||
|
|
make up-web # 最后启动前端
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5. 查看状态
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 查看服务状态
|
|||
|
|
make status
|
|||
|
|
|
|||
|
|
# 查看日志
|
|||
|
|
make logs
|
|||
|
|
|
|||
|
|
# 查看特定服务日志
|
|||
|
|
docker compose logs -f gateway
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 服务层级
|
|||
|
|
|
|||
|
|
### Level 1: 基础设施 (infra)
|
|||
|
|
- **Nginx**: 反向代理 + 前端静态资源 (80/443)
|
|||
|
|
- **Nacos**: 服务注册与配置中心 (8848)
|
|||
|
|
- **MinIO**: 对象存储服务 (9000/9001)
|
|||
|
|
- **Jitsi Meet**: 视频会议服务 (8280)
|
|||
|
|
|
|||
|
|
### Level 2: 后端服务 (serv)
|
|||
|
|
启动顺序: gateway → system → file → auth → ai → workcase
|
|||
|
|
|
|||
|
|
| 服务 | 端口 | 说明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| gateway | 8080 | API 网关 |
|
|||
|
|
| system | 8082 | 系统服务 |
|
|||
|
|
| file | 8084 | 文件服务 |
|
|||
|
|
| auth | 8081 | 认证服务 |
|
|||
|
|
| ai | 8090 | AI 服务 |
|
|||
|
|
| workcase | 8088 | 工单服务 |
|
|||
|
|
|
|||
|
|
### Level 3: 前端应用 (web)
|
|||
|
|
前端静态资源已打包到 Nginx 镜像中,由 infra 层的 Nginx 服务提供:
|
|||
|
|
- /platform - 管理平台
|
|||
|
|
- /workcase - 工单系统
|
|||
|
|
|
|||
|
|
## 常用命令
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 构建
|
|||
|
|
make build-all # 构建所有镜像
|
|||
|
|
make build-gateway # 构建单个服务
|
|||
|
|
|
|||
|
|
# 运行
|
|||
|
|
make up # 启动所有
|
|||
|
|
make up-infra # 只启动基础设施
|
|||
|
|
make down # 停止所有
|
|||
|
|
|
|||
|
|
# 导出
|
|||
|
|
make save-all # 导出所有镜像
|
|||
|
|
make save-gateway # 导出单个镜像
|
|||
|
|
|
|||
|
|
# 清理
|
|||
|
|
make clean # 清理构建产物
|
|||
|
|
make clean-images # 清理 Docker 镜像
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 单独管理子服务
|
|||
|
|
|
|||
|
|
每个子目录都有独立的 docker-compose.yml,可以单独管理:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 只管理基础设施
|
|||
|
|
cd infra
|
|||
|
|
docker compose up -d nacos
|
|||
|
|
docker compose logs -f nacos
|
|||
|
|
|
|||
|
|
# 只管理后端服务
|
|||
|
|
cd urbanLifeline/serv
|
|||
|
|
docker compose up -d gateway
|
|||
|
|
docker compose restart system
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 镜像导出与部署
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 导出所有镜像
|
|||
|
|
make save-all
|
|||
|
|
|
|||
|
|
# 镜像文件在 output/ 目录
|
|||
|
|
ls -la output/
|
|||
|
|
|
|||
|
|
# 在目标服务器加载镜像
|
|||
|
|
docker load -i urban-lifeline-gateway_20251228_120000.tar
|
|||
|
|
docker load -i urban-lifeline-web_20251228_120000.tar
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. **首次部署**需要先构建基础镜像: `make build-base`
|
|||
|
|
2. **MySQL** 需要在宿主机或单独容器中运行,配置 `MYSQL_HOST`
|
|||
|
|
3. **Dify** 有独立的 docker-compose,在 `dify/` 目录单独管理
|
|||
|
|
4. 修改 `.env` 后需要重启服务才能生效
|
|||
|
|
5. 生产环境建议配置 SSL 证书
|