yapi 已经很久没人更新和维护,但界面和功能还是挺不错的,支持从Swagger快速导入更新接口,适合团队接口文档管理和存档。
官方并没有直接封装docker镜像,但是有一个二次开发的 YAPIPro镜像。https://hub.docker.com/r/yapipro/yapi 提供了部署文档,但是步骤有点多。于是动手自定义了docker-compose.yml实现快速部署。
前提准备
机器已安装docker-compose
创建一个目录,接下来安装操作都在这个目录下操作。目录名称就叫 yapi
吧
我们需要安装 yapi 和 mongodb 两个容器。并且需要提前创建mongodb的用户信息,并设置用户名和密码
所以需要准备一个脚本文件 init-mongo.js
1 2 3 4 5 6 7
| db = db.getSiblingDB('yapi');
db.createUser({ user: "yapiblog", pwd: "yapi666", roles: [{ role: "dbAdmin", db: "yapi" },{ role: "readWrite", db: "yapi" }] });
|
还需要准备yapi的配置文件 config.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| { "port": "3000", "adminAccount": "hexiaohei1024@gmail.com", "timeout":120000, "db": { "servername": "mongodb", "DATABASE": "yapi", "port": 27017, "user": "yapiblog", "pass": "yapi666", "authSource": "" }, "mail": { "enable": true, "host": "smtp.gmail.com", "port": 465, "from": "*", "auth": { "user": "hexiaohei1024@gmail.com", "pass": "xxx" } } }
|
准备之后的目录结构如下:
1 2 3 4
| yapi ├── config.json ├── docker-compose.yml ├── init-mongo.js
|
部署脚本
因为yapi流程需要先初始化数,再二次启动运行。所以yml中需要增加一个一次性容器用于初始化数据库
docker-compose.yml 文件内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| version: '3' services: mongodb: image: mongo:5.0.14 container_name: mongodb restart: always ports: - "27017:27017" environment: MONGO_INITDB_DATABASE: yapi MONGO_INITDB_ROOT_USERNAME: yapipro MONGO_INITDB_ROOT_PASSWORD: yapipro1024 volumes: - ./mongo-data:/data/db - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js command: mongod --auth
yapi-init: image: yapipro/yapi:1.9.5 container_name: yapi-init restart: "no" depends_on: - mongodb volumes: - ./config.json:/yapi/config.json entrypoint: ["sh", "-c", "sleep 15 && node server/install.js"]
yapi: image: yapipro/yapi:1.9.5 container_name: yapi restart: always depends_on: - mongodb ports: - "3000:3000" volumes: - ./config.json:/yapi/config.json entrypoint: ["sh", "-c", "sleep 30 && node server/app.js"]
|
启动验证
初始化管理员账号在上面的 config.json 配置中 hexiaohei1024@gmail.com,初始密码是 yapi.pro,
可以登录后进入个人中心修改。 访问 IP:3000登录即可!
关于MongoDB版本选择:长时间运行且对稳定性要求高的生产环境:推荐使用 MongoDB 4.4.x 或 5.0.x,这些版本经过了大量验证,社区反馈也较好