Urban Lifeline Docker 部署 (All-in-One)
目录结构
docker/urbanLifeline/
├── .env.example # 环境变量示例
├── Makefile # 快捷命令
├── README.md # 本文档
├── serv/ # 后端服务
│ ├── build.sh # 构建脚本
│ ├── Dockerfile.base # 基础镜像
│ ├── Dockerfile.serv # 服务镜像
│ └── service-manager.sh # 服务管理脚本
└── web/ # 前端应用
├── build.sh # 构建脚本
├── Dockerfile.web # 前端镜像
└── web-manager.sh # 前端管理脚本
服务端口
后端服务 (urban-lifeline-serv)
| 服务 | 端口 | 说明 |
|---|---|---|
| gateway | 8080 | API 网关 |
| auth | 8081 | 认证服务 |
| system | 8082 | 系统服务 |
| log | 8083 | 日志服务 |
| file | 8084 | 文件服务 |
| message | 8085 | 消息服务 |
| crontab | 8086 | 定时任务 |
| bidding | 8087 | 招标服务 |
| workcase | 8088 | 工单服务 |
| platform | 8089 | 平台服务 |
| ai | 8090 | AI 服务 |
前端应用 (urban-lifeline-web)
| 应用 | 端口 | 说明 |
|---|---|---|
| shared | 8000 | 公共模块 (Module Federation) |
| platform | 8001 | 管理平台 |
| workcase | 8002 | 工单系统 PC |
| bidding | 8003 | 招标系统 |
| workcase_wechat | 8004 | 工单微信端 |
快速开始
1. 准备环境变量
cd docker/urbanLifeline
cp .env.example .env
# 编辑 .env 配置
2. 构建镜像
# 构建后端 (需先编译 Java)
cd urbanLifelineServ && mvn clean package -DskipTests
cd docker/urbanLifeline && make build-serv
# 构建前端 (需先构建前端)
cd urbanLifelineWeb && pnpm build
cd docker/urbanLifeline && make build-web
3. 启动服务
make up
4. 管理服务
# 查看状态
make status
# 重启单个后端服务
make restart-serv SERVICE=gateway
# 重启单个前端站点
make restart-web SITE=platform
# 查看日志
make logs
配置外挂
容器支持配置外挂,可在运行时覆盖默认配置:
后端配置目录结构
volumes/config/serv/
├── gateway.yml # gateway 服务配置
├── system.yml # system 服务配置
├── auth.yml # auth 服务配置
├── file.yml # file 服务配置
├── log.yml # log 服务配置
├── message.yml # message 服务配置
├── crontab.yml # crontab 服务配置
├── ai.yml # ai 服务配置
├── bidding.yml # bidding 服务配置
├── platform.yml # platform 服务配置
└── workcase.yml # workcase 服务配置
每个服务的配置文件会通过 spring.config.additional-location 加载,覆盖 JAR 包内的默认配置。
前端配置
volumes/config/web/
├── env.js # 运行时环境变量
└── config.json # 应用配置
依赖服务
确保以下基础设施服务已启动:
- Nacos (服务注册/配置中心)
- PostgreSQL (数据库)
- Redis (缓存)
- MinIO (对象存储)
通过 docker compose --profile infra up -d 启动基础设施。