DEPLOY.md
3.34 KB
HaHRCS Docker 部署指南
一、打包流程
1. 后端打包
在 D:\Projects\Custom\HaHRCS\src 目录下执行:
# 方式一:使用脚本
build-backend.bat
# 方式二:手动执行
dotnet publish Rcs.Api\Rcs.Api.csproj -c Release -o Rcs.Api\publish
2. 前端打包
在 D:\Projects\Custom\HaHWeb 目录下执行:
# 使用脚本
build.bat
打包完成后,将 dist 目录复制到部署目录的 html\ 下。
3. Docker 镜像打包
在 D:\Projects\Custom\HaHRCS\src 目录下执行:
# 使用脚本
build-images.bat
该脚本会:
- 构建后端 API 镜像
- 导出所有镜像到
hahrcs-images.tar
二、部署目录结构
Build/
├── docker-compose.yml # Docker 编排文件
├── hahrcs-images.tar # 镜像包(约 638MB)
├── config/
│ └── nginx.conf # Nginx 配置文件
├── html/
│ └── dist/ # 前端打包文件
└── Rcs.Api/
├── Dockerfile # 后端镜像构建文件
└── publish/ # 后端发布文件
三、目标机器环境要求
仅需安装 Docker Desktop (Windows 版本)
下载地址:https://www.docker.com/products/docker-desktop
四、部署步骤
1. 复制部署文件
将整个 Build 目录复制到目标机器。
2. 导入镜像
cd Build
docker load -i hahrcs-images.tar
3. 启动服务
docker-compose up -d
五、服务访问地址
| 服务 | 地址 | 账号/密码 |
|---|---|---|
| 前端 | http://localhost:8080 | - |
| 后端 API | http://localhost:5000 | - |
| RabbitMQ 管理 | http://localhost:15672 | guest / guest |
| EMQX Dashboard | http://localhost:18083 | hahrcs / hu@Heng_! |
| PostgreSQL | localhost:5432 | sa_user / hu@Heng_! |
| Redis | localhost:7379 | 密码: hu@Heng_! |
六、常用命令
# 查看服务状态
docker-compose ps
# 查看所有日志
docker-compose logs -f
# 查看指定服务日志
docker-compose logs -f api
docker-compose logs -f nginx
# 停止所有服务
docker-compose down
# 重启所有服务
docker-compose restart
# 重启指定服务
docker-compose restart api
# 启动单个服务(会自动启动依赖服务)
docker-compose up -d nginx
七、服务说明
| 服务名 | 镜像 | 端口 | 说明 |
|---|---|---|---|
| rabbitmq | masstransit/rabbitmq:4.1.3 | 5672, 15672 | 消息队列 |
| redis | redis:7.2-alpine | 7379 | 缓存 |
| postgres | postgres:15 | 5432 | 数据库 |
| emqx | emqx/emqx:5.5 | 1883, 8083, 18083 | MQTT Broker |
| api | hahrcs/api:latest | 5000 | 后端 API |
| nginx | nginx:1.25-alpine | 8080 | 前端 + 反向代理 |
八、故障排查
1. 端口被占用
# 检查端口占用
netstat -ano | findstr :8080
2. 服务启动失败
# 查看服务日志
docker-compose logs api
# 重新构建并启动
docker-compose up -d --build api
3. 数据库连接失败
确保 PostgreSQL 服务已启动且健康:
docker-compose ps postgres
4. 清理重建
# 停止并删除所有容器和网络
docker-compose down
# 删除数据卷(会清除所有数据)
docker-compose down -v
# 重新启动
docker-compose up -d