基于Docker Compose部署RAP2-Delos接口管理平台
2025-07-07 03:30:55作者:戚魁泉Nursing
项目概述
RAP2-Delos是一个开源的接口管理平台,提供API文档管理、Mock数据生成、接口测试等功能。本文将通过Docker Compose方式详细介绍如何部署RAP2-Delos系统。
系统架构
RAP2-Delos采用前后端分离架构:
- 前端服务(dolores):基于React构建的用户界面
- 后端服务(delos):Node.js实现的API服务
- 数据库服务:MySQL存储业务数据
- 缓存服务:Redis提供缓存支持
部署准备
在开始部署前,请确保已安装:
- Docker 18.06+
- Docker Compose 1.22+
配置文件详解
服务定义
version: "3"
services:
# 前端服务
dolores:
image: rapteam/rap2-dolores:latest
ports:
- 3000:38081
前端服务使用官方提供的rap2-dolores
镜像,将容器内的38081端口映射到主机的3000端口。可根据需要修改冒号前的端口号。
后端服务配置
delos:
image: rapteam/rap2-delos:latest
ports:
- 38080:38080
environment:
- SERVE_PORT=38080
- MYSQL_URL=mysql
- MYSQL_PORT=3306
- MYSQL_USERNAME=root
- MYSQL_PASSWD=
- MYSQL_SCHEMA=rap2
- REDIS_URL=redis
- REDIS_PORT=6379
- NODE_ENV=production
command: /bin/sh -c 'node dispatch.js'
depends_on:
- redis
- mysql
关键配置说明:
environment
部分定义了数据库连接参数,如需使用外部MySQL服务,可在此修改command
指定了启动命令,首次部署时需要取消注释初始化命令depends_on
确保服务启动顺序
数据库服务
mysql:
image: mysql:5.7
volumes:
- "./docker/mysql/volume:/var/lib/mysql"
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --init-connect='SET NAMES utf8mb4;' --innodb-flush-log-at-trx-commit=0
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
MYSQL_DATABASE: "rap2"
MYSQL_USER: "root"
MYSQL_PASSWORD: ""
重要注意事项:
volumes
配置将MySQL数据持久化到本地,防止容器重启数据丢失- 字符集配置为utf8mb4,支持完整的Unicode字符集
- 默认配置为空密码,生产环境应修改为强密码
Redis服务
redis:
image: redis:4
使用Redis 4.x版本作为缓存服务,默认配置即可满足需求。
部署步骤
-
创建项目目录并进入
mkdir rap2-delos && cd rap2-delos
-
创建
docker-compose.yml
文件,内容参考上文 -
创建MySQL数据目录
mkdir -p docker/mysql/volume
-
首次启动时,修改
delos
服务的command为:command: /bin/sh -c 'sleep 30 && node scripts/init && node dispatch.js'
这将初始化数据库表结构
-
启动服务
docker-compose up -d
-
初始化完成后,将command改回:
command: /bin/sh -c 'node dispatch.js'
-
访问前端 浏览器打开
http://localhost:3000
常见问题处理
-
MySQL连接失败:检查MySQL服务是否正常启动,等待足够时间(30秒)让MySQL完成初始化
-
端口冲突:修改
ports
配置中的主机端口号 -
数据持久化:确保volumes配置正确,避免数据丢失
-
初始化失败:检查MySQL日志,确认字符集配置正确
生产环境建议
- 为MySQL设置强密码
- 启用Redis密码认证
- 配置HTTPS访问
- 定期备份MySQL数据
- 监控服务运行状态
通过以上步骤,您已成功部署RAP2-Delos接口管理平台。该系统可以帮助团队高效管理API文档,提升前后端协作效率。