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

该脚本会:

  1. 构建后端 API 镜像
  2. 导出所有镜像到 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