yapi部署
部署文档来源于官网:https://hub.docker.com/r/yapipro/yapi
Docker 环境准备
Docker 容器之间网络互通需要使用 docker network create yapi 创建一个自定义网络
1、数据库准备 MongoDB
YAPI 的数据库是 MongoDB,准备镜像并启动容器如下:
# 1. 备份 mongoDB 到宿主机,需要使用下面命令创建存储卷
docker volume create mongo-data
# 2. 拉取镜像,国内服务器提供商网络问题,可能会拉取多次才能成功
docker pull mongo:latest
# 3. 启动 MongoDB
# 启动 MongoDB,其中 -e 指定 MONGO_INITDB_ROOT_USERNAME 为 MongoDB 的 ROOT 用户名,MONGO_INITDB_ROOT_PASSWORD 为 MongoDB 的 ROOT 用户密码
docker run -d \
--name mongodb \
--restart always \
--net=yapi \
-p 27017:27017 \
-v mongo-data:/data/db \
-e MONGO_INITDB_DATABASE=yapi \
-e MONGO_INITDB_ROOT_USERNAME=yapipro \
-e MONGO_INITDB_ROOT_PASSWORD=yapipro1024 \
mongo
# 4、查看 MongoDB 容器的启动情况
docker ps -a
# 5、 进入 MongoDB 容器,从第 4 步查看 MongoDB 容器可以获取到容器 id,以下示例使用 2c46d9f59874 代表 MongoDB 的容器 id
docker exec -it 2c46d9f59874 /bin/sh
# 6、进入 MongoDB 容器后,进入 mongo cli
mongo localhost:27017
# mongodb version 大于6.0时
mongosh localhost:27017
进入 MongoDB 的 mongo cli 后,执行以下语句进行初始化库表
use admin;
db.auth("yapipro", "yapipro1024");
# 创建 yapi 数据库
use yapi;
# 创建给 yapi 使用的账号和密码,限制权限
db.createUser({
user: 'yapi',
pwd: 'yapi123456',
roles: [
{ role: "dbAdmin", db: "yapi" },
{ role: "readWrite", db: "yapi" }
]
});
# 退出 Mongo Cli
exit
# 退出容器
exit
2、启动 YAPI
在宿主机根据自己修改创建一个 YAPI 配置文件 config.json
{
"port": "3000",
"adminAccount": "test@gmail.com",
"timeout":120000,
"db": {
"servername": "mongo",
"DATABASE": "yapi",
"port": 27017,
"user": "yapi",
"pass": "yapi123456",
"authSource": ""
},
"mail": {
"enable": true,
"host": "smtp.gmail.com",
"port": 465,
"from": "*",
"auth": {
"user": "test@gmail.com",
"pass": "yapi.pro"
}
}
}
拉取最新镜像,启动
docker pull yapipro/yapi:latest
# 初始化数据库表
docker run -d --rm \
--name yapi-init \
--link mongodb:mongo \
--net=yapi \
-v $CONFIG_PATH/config.json:/yapi/config.json \
yapipro/yapi \
server/install.js
# CONFIG_PATH 为创建的config.json 配置文件的路径
# 初始化管理员账号在上面的 config.json 配置中 test@gmail.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
通过http://ip:3000/进行访问使用,账号:test@gmail.com",初始密码是 yapi.pro