Docker安装Yapi
dockerHub下载地址(可以去里面找对应的镜像)
https://registry.hub.docker.com
1、首先安装MongoDB
YAPI 的数据库是 MongoDB,准备镜像并启动容器如下:
1、Docker 容器之间网络互通需要使用 docker network create yapi
创建一个自定义网络
1.1、将MongoDB的镜像下载
Docker 容器之间网络互通需要使用 docker network create yapi
创建一个自定义网络
docker pull mongo
2、启动MongoDB镜像为容器
docker run -d \
--name mongodb \
--restart always \
--net=yapi \
-p 27017:27017 \
-v /home/yapi/mongo-data:/data/db \
-e MONGO_INITDB_DATABASE=yapi \
-e MONGO_INITDB_ROOT_USERNAME=yapipro \
-e MONGO_INITDB_ROOT_PASSWORD=yapipro1024 \
mongo
3、查看容器(所有)
docker ps -a
4、进入容器
docker exec -it 容器id /bin/sh
5、进入 mongo cli 、初始化Yapi数据
mongo localhost:27017
5.1、初始化数据
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
在安装Yapi
1、编写一个config.json
{
"port": "3000",
"adminAccount": "858689814@qq.com",
"timeout":120000,
"db": {
"servername": "mongo",
"DATABASE": "yapi",
"port": 27017,
"user": "yapi",
"pass": "yapi123456"
},
"mail": {
"enable": true,
"host": "smtp.qq.com",
"port": 465,
"from": "858689814@qq.com",
"auth": {
"user": "858689814@qq.com",
"pass": "xxx"
}
}
}
可以修改配置禁止注册
配置在config.json
中
{
"closeRegister":true
}
2、将yapi的镜像下载
docker pull yapipro/yapi
3、初始化:的时候会将配置文件中的adminAccount值
作为初始用户名
docker run -d --rm \
--name yapi-init \
--link mongodb:mongo \
--net=yapi \
-v /home/yapi/config.json:/yapi/config.json \
容器id \
server/install.js
3、 运行
docker run -d \
--name yapi \
--link mongodb:mongo \
--restart always \
--net=yapi\
-p 3000:3000 \
-v /home/yapi/config.json:/yapi/config.json \
容器id \
server/app.js
# 初始化管理员账号在上面的 config.json 配置中 858689814@qq.com,初始密码是 yapi.pro,可以登录后进入个人中心修改
自后就可以通过ip:端口
就可以访问了!!!
坑:
配置邮箱的时候、什么时候会发邮件、idea推送yapi 的时候、但是你要在你开启消息通知、确保邮箱配置可用!!!
如果没有配置成员通知的话会报一个错误
error: send mail error,No recipients defined
Docker删除Yapi
1、停止Yapi容器
docker stop 容器id
2、删除Yapi容器
docker rm 容器id
3、删除Yapi镜像
docker rmi 镜像id
如果直接删除镜像的话会报一个错误、容器在运行中
或者停止容器、再次删除镜像、会报一个容器中有这个不能直接删除镜像
所以先先停止容器、在删除容器、在删除镜像、后就删除成功了!!!