线上YAPI迁移至线下Docker环境

本文内容线上YAPI迁移至线下Docker环境

以下:

线下YAPI环境搭建

(1)拉取YAPI镜像

1
docker pull silsuer/yapi

(2)运行镜像容器

1
docker run --name yapi -dit -p 27017:27017 -p 9090:9090 -p 3000:3000 silsuer/yapi bash

(3)进入容器内部

1
docker exec -it yapi bash

(4)在容器内部启动mongodb

1
service mongodb start

(5)升级apt-get源

1
apt-get update

(6)安装git

1
apt-get install git

(7)启动YAPI安装程序,并根据提示安装YAPI,网址为ip+9090

1
yapi server

安装时注意选择Yapi版本为v1.3.22的进行安装

(8)安装完成之后在docker中进入my-yapi目录执行启动命令

1
node vendors/server/app.js
数据迁移

(1)导出原mongodb数据库中yapi的数据

1
mongodump -h 127.0.0.1 -p 27017 -d yapi -o /root

(2)导入新mongodb数据库中

1
mongorestore -h 127.0.0.1 -p 27017 -d yapi --drop --dir /root
设置每日备份

由于yapi不支持命令行式的备份指令,而事实上对于yapi只需要备份其数据库内容即可,所以我们可以对yapi使用到的mongodb数据库进行每日备份

由于docker容器里面是没有安装crontab的,所以需要单独安装crontab

1
2
apt-get update
apt-get install cron

编写自动备份的脚本文件,设置备份的文件及一定要-v挂载在宿主机的文件系统下,否则如果容器挂了,导致无法进入容器,备份的数据就失去了作用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vim mongod_bak.sh 
chmod +x mongod_bak.sh

DUMP=/usr/bin/mongodump
OUT_DIR=/var/data/backup/mongod_bak_now
TAR_DIR=/var/data/backup/mongod_bak_list
DATE=`date +%Y-%m-%d`
DB=yapi
DAYS=30
TAR_BAK="mongod_bak_$DATE.tar.gz"
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -h 127.0.0.1:27017 -d $DB -o $OUT_DIR/$DATE
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
find $TAR_DIR/ -mtime +$DAYS -delete
exit

设置crontab定时执行,前面表示多少分钟,几点钟执行,后面是脚本文件的路径

1
2
vim /etc/crontab
43 3 * * * root /home/crontab/mongod_bak.sh
1
2
3
4
5
6
7
8
9
service cron start

service cron stop

service cron restart

service cron reload

service cron status

选择reload或者restart

-->