前言

YApi Pro 是 YApi 的长期维护分支,我们将长期维护,及时更新、处理问题,欢迎更多社区的小伙伴一起参与。代码库地址:https://github.com/yapi-pro/yapi

安装步骤

  • Docker中安装数据库:Mongodb
  • Docker中安装Yapi

0、Docker环境的准备

以下操作均在linux下进行。

首先需要安装Docker,可以使用此命令一键安装:

curl -sSL https://get.daocloud.io/docker | sh

Docker 容器(Mongodb与yapi)之间网络互通需要使用 以下命令
创建一个自定义网络

docker network create yapi

yapi容器部署 yapi docker安装_json

1、准备数据库-Mongodb

YAPI 的使用的是MongoDB,准备镜像并启动容器如下:

  1. 为了数据安装,持久化存储,需要进行数据本地化保存。备份mongoDB 到宿主机,需要使用下面命令创建存储卷:
docker volume create mongo-data

yapi容器部署 yapi docker安装_yapi容器部署_02

  1. 拉取mongo的官方镜像
docker pull mongo:latest

yapi容器部署 yapi docker安装_python_03


拉取成功:

yapi容器部署 yapi docker安装_yapi容器部署_04

  1. 启动 MongoDB
docker run -d \
  --name mongodb \
  --restart always \
  --net=yapi \
  -p 27017:27017 \
  -v mongo-data:/data/db \
  -e MONGO_INITDB_DATABASE=yapidb \
  -e MONGO_INITDB_ROOT_USERNAME=yapiroot\
  -e MONGO_INITDB_ROOT_PASSWORD=yapiroot123\
  mongo

命令解释:
-p 27017:27017 \端口映射
-v mongo-data:/data/db \将之前创建的本地化存储文件夹,映射到dockermongodb中。
-e 指定 MONGO_INITDB_ROOT_USERNAME 为 MongoDB 的 ROOT 用户名;MONGO_INITDB_ROOT_PASSWORD 为 MongoDB 的 ROOT 用户密码

  1. 查看 MongoDB 容器的启动情况
docker ps -a

yapi容器部署 yapi docker安装_yapi容器部署_05

  1. 进入 MongoDB 容器,从第 4 步查看 MongoDB 容器可以获取到容器 id.(我的容器ID为:b6b8aaaa737f )
docker exec -it b6b8aaaa737f  /bin/sh
  1. 进入 MongoDB 容器后,进入 mongo cli
mongo localhost:27017

yapi容器部署 yapi docker安装_yapi容器部署_06

进入 MongoDB 的 mongo cli 后,执行以下语句进行初始化库表

use admin;
db.auth("yapiroot", "yapiroot123");
# 创建 yapi 数据库
use yapidb;
# 创建给 yapi 使用的账号和密码,限制权限
db.createUser({
  user: 'yapiroot',
  pwd: 'yapiroot123',
  roles: [
 { role: "dbAdmin", db: "yapidb" },
 { role: "readWrite", db: "yapidb" }
  ]
});

yapi容器部署 yapi docker安装_yapi容器部署_07

# 退出 Mongo Cli
exit
# 退出容器
exit

至此数据库准备完毕

2、安装、启动 YAPI

在宿主机中,任一文件夹下,创建一个config.json配置文件。

{
   "port": "3000", //YApi端口号,默认为3000
   "adminAccount": "admin@admin.com",//超级管理员账户
   "timeout":120000,//超时链接时间
   "db": {//配置数据库
     "servername": "mongo",
     "DATABASE": "yapidb",//前面配置的数据库名称
     "port": 27017,//mongodb端口号,要与前面一致
     "user": "yapiroot",
     "pass": "yapiroot123",
     "authSource": ""
   },
   "mail": {
     "enable": true,
     "host": "smtp.gmail.com",
     "port": 465,
     "from": "*",
     "auth": {
       "user": "1024@gmail.com",
       "pass": "xxx"
     }
   }
 }

配置完成后,保存。在该文件所在路径下。拉取最新的镜像,并启动。

docker pull yapipro/yapi:latest

初始化数据库表

docker run -d --rm \
  --name yapi-init \
  --link mongodb:mongo \
  --net=yapi \
  -v $PWD/config.json:/yapi/config.json \
   yapipro/yapi \
  server/install.js

初始化管理员账号在上面的 config.json 配置中
管理员账号:admin@admin.com
初始密码是: yapi.pro

可以登录后进入个人中心修改

docker run -d \
   --name yapi \
   --link mongodb:mongo \
   --restart always \
   --net=yapi \
   -p 3000:3000 \
   -v $PWD/config.json:/yapi/config.json \
   yapipro/yapi \
   server/app.js

在服务器上验证 yapi 启动是否成功

curl localhost:3000

启动成功后,如图:

yapi容器部署 yapi docker安装_python_08


yapi容器部署 yapi docker安装_数据库_09


yapi容器部署 yapi docker安装_json_10