1、运行 MongoDB
# 创建存储卷
docker volume create mongo-data
# 启动 MongoDB
docker run -d \
--name mongo-yapi \
-v /data/yapi/mongo/mongo-data:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=root.com \
mongo
2、获取 YAPI 镜像(更多版本)
docker pull registry.cn-hangzhou.aliyuncs.com/anoyi/yapi
3、自定义配置文件 config.json
vim /data/yapi/yapi/config.json
{
"port": "3000",
"adminAccount": "[email protected]",
"timeout":120000,
"db": {
"servername": "mongo",
"DATABASE": "yapi",
"port": 27017,
"user": "root",
"pass": "root.com",
"authSource": "admin"
}
}
4、初始化 YAPI 数据库索引及管理员账号
docker run -it --rm \
--link mongo-yapi:mongo \
--entrypoint npm \
--workdir /yapi/vendors \
-v /data/yapi/yapi/config.json:/yapi/config.json \
registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \
run install-server
5、启动 Yapi 服务
docker run -d \
--name yapi \
--link mongo-yapi:mongo \
--workdir /yapi/vendors \
-p 3009:3000 \
-v /data/yapi/yapi/config.json:/yapi/config.json \
registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \
server/app.js
6、登录YAPI
访问: http://localhost:3009
登录账号:[email protected]
密码:ymfe.org
7、取消注册功能
vim /data/yapi/yapi/config.json
{
"port": "3000",
"closeRegister": "true",
……
docker restart yapi
8、YAPI 升级
# 1、停止并删除旧版容器
docker rm -f yapi
# 2、获取最新镜像
docker pull registry.cn-hangzhou.aliyuncs.com/anoyi/yapi
# 3、启动新容器
docker run -d \
--name yapi \
--link mongo-yapi:mongo \
--workdir /yapi \
-p 3000:3000 \
-v /data/yapi/yapi/config.json:/config.json \
registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \
server/app.js
9、mongo_yapi库备份
cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# 备份mongo_yapi库,保留一周
0 0 * * * root /usr/bin/docker exec mongo-yapi sh -c 'exec mongodump -uroot -proot.com -d yapi --archive --authenticationDatabase admin' > /data/backup/mongo/yapi_`date +\%F`.gz && rm -f /data/backup/mongo/yapi_`date -d "7 day ago" +"%Y-%m-%d"`.gz
# 注:不加--authenticationDatabase admin会报错:ERROR OCCURED DURING CONNECTION HANDSHAKE: AUTH ERROR: SASL CONVERSATION ERROR: UNABLE TO AUTHENTICATE USING MECHANISM "SCRAM-SHA-1"
# 注:mongo还原yapi库
# docker exec -i mongo-yapi sh -c 'mongorestore --archive' < /data/backup/mongo/yapi_2022-09-06.gz