Files
urbanLifeline/docker/README.md

189 lines
4.3 KiB
Markdown
Raw Permalink Normal View History

2025-12-28 18:30:17 +08:00
# 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 证书