Yapi 搭建部署
1、Docker安装MongoDB
Yapi的数据存储是用MongoDB。如果存在MongoDB可以忽略
docker pull mongo
启动MongoDB
docker run -d \
--net=yapi \
--name MongoDB \
--restart always \
-p 27017:27017 \
-v `pwd`/MongoData:/data/db \
-e MONGO_INITDB_DATABASE=yapi \
-e MONGO_INITDB_ROOT_USERNAME=lit \
-e MONGO_INITDB_ROOT_PASSWORD=litsoft1024 \
mongo
ID | 字段参数 | 说明 |
---|---|---|
1 | MONGO_INITDB_DATABASE | 初始化一个库 |
2 | MONGO_INITDB_ROOT_USERNAME | mongodb的账号 |
3 | MONGO_INITDB_ROOT_PASSWORD | mongodb的密码 |
进到容器内进行初始化库表
# 1、查看 MongoDB 容器的启动情况
`docker ps -a`
# 2、 进入 MongoDB 容器
`docker exec -it MongoDB /bin/bash`
# 3、进入 MongoDB 容器后,进入 mongo cli
`mongo localhost:27017`
# 4、进入 MongoDB 的 mongo cli 后,执行以下语句进行初始化库表
use admin;
db.auth("lit", "litsoft1024");`
# 创建 yapi 数据库
use yapi;
# 创建给 yapi 使用的账号和密码,限制权限 yapi是我们初始化的数据库
db.createUser({
user: 'yapi',
pwd: 'yapi123456',
roles: [
{ role: "dbAdmin", db: "yapi" },
{ role: "readWrite", db: "yapi" }
]
});
# 退出 Mongo Cli
exit
# 退出容器
exit
pod
2、启动 YAPI
在宿主机的当前目录,根据自己修改创建一个 YAPI 配置文件 config.json
{
"port": "3000",
"adminAccount": "hexiaohei1024@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": "hexiaohei1024@gmail.com",
"pass": "xxx"
}
}
}
docker pull yapipro/yapi
# 初始化数据库表 mongo_my我们的容器名 $PWD/config.json 宿主机的配置文件路径
docker run -d --rm \
--net=yapi \
--name YapiInit \
--link MongoDB:mongo \
-v `pwd`/YapiData/config.json:/yapi/config.json \
yapipro/yapi \
server/install.js
# 初始化管理员账号在上面的 config.json 配置中 hexiaohei1024@gmail.com,初始密码是 yapi.pro,可以登录后进入个人中心修改
docker run -d \
--net=yapi \
--name Yapi \
--link MongoDB:mongo \
--restart always \
-p 3000:3000 \
-v $PWD/YapiData/config.json:/yapi/config.json \
yapipro/yapi \
server/app.js
# 在服务器上验证 yapi 启动是否成功
curl localhost:3000
最终参考这个给部署上了
https://github.com/Ryan-Miao/docker-yapi
[root@Learning docker-yapi]# cat docker-compose.yml
# Use root/example as user/password credentials
version: '3.1'
services:
mongo:
image: mongo:4
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
MONGO_INITDB_DATABASE: yapi
volumes:
- ./mongo-conf:/docker-entrypoint-initdb.d
- ./mongo/etc:/etc/mongo
- ./mongo/data/db:/data/db
ports:
- 27017:27017
healthcheck:
test: ["CMD", "netstat -anp | grep 27017"]
interval: 2m
timeout: 10s
retries: 3
yapi:
build:
context: ./
dockerfile: Dockerfile
image: yapi
# 第一次启动使用
# command: "yapi server"
# 之后使用下面的命令
command: "node /my-yapi/vendors/server/app.js"
volumes:
- ./my-yapi:/my-yapi
ports:
- 9090:9090
- 3000:3000
depends_on:
- mongo
networks:
yapi:
评论区