本文主要是介绍Docker搭建Yapi及迁移,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Docker搭建Yapi及迁移
安装mongo
docker run -p 27017:27017 -d -v /data/mongo/data:/data/db -v /data/mongo/conf:/data/configdb --name mongoserver mongo --auth
1
安装yapi
注意: yapi不要开放外网,存在恶意mock漏洞,解决办法:Yapi的mock漏洞
我采用的是dockfile,搭建yapi服务,
准备工作
Dockerfile内容:
FROM alpine:latest
LABEL MAINTAINER = ‘Levon’
RUN mkdir -p /yapi/vendors/
COPY vendors/ /yapi/vendors/
RUN echo “https://mirrors.aliyun.com/alpine/latest-stable/main/” > /etc/apk/repositories \
RUN sed -i ‘s/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g’ /etc/apk/repositories
&& apk update
&& apk add nodejs=14.17.6-r0
&& apk add npm=7.17.0-r0
&& apk add --no-cache git bash curl tar vim python3 python3-dev gcc libcurl make
&& rm -rf /var/cache/apk/*
RUN npm config set registry https://registry.npm.taobao.org
&& npm i -g node-gyp
&& npm install -g yapi-cli
RUN cd /yapi/vendors
&& npm install --production --registry https://registry.npm.taobao.org
WORKDIR /yapi/vendors
COPY config.json /yapi/
COPY entrypoint.sh /usr/local/bin/
RUN chmod 755 /usr/local/bin/entrypoint.sh
COPY .vimrc /root/
EXPOSE 3000
ENTRYPOINT [“entrypoint.sh”]
entrypoint.sh内容:
#!/bin/bash
yapi初始化后会有一个init.lock文件
lockPath="/yapi/init.lock"
进入yapi项目
cd /yapi/vendors
如果初始化文件文件存在,则直接运行,否则初始化
if [ ! -f “$lockPath” ]
then
启动Yapi初始化
node server/install.js
若是初始化成功的情况下直接运行yapi
node server/app.js
else
运行yapi管理系统
node server/app.js
fi
config.json内容
{
“port”: “端口”,
“adminAccount”: “用户名”,
“timeout”:120000,
“mock”: false,
“db”: {
“servername”: “mongoserver”,
“DATABASE”: “yapi”,
“user”: “mongo账号”,
“pass”: “mongo密码”,
“port”: 27017,
“authSource”: “”
},
“mail”: {
“enable”: false,
“host”: “smtp.163.com”,
“port”: 465,
“from”: “*@163.com",
“auth”: {
“user”: "@163.com",
“pass”: "”
}
}
}
vendors文件中Yapi版本:6925c98da73,master最新版本中package-lock.json存在一些问题,无法访问的去哪儿的镜像地址
构建
docker build -f dockerfile -t yapi:v1 .
启动yapi镜像
docker run -d --name yapi -p 3000:3000 yapi:v1
迁移
备份
备份数据到 /data 路径下(路径下有一个yapi的文件)
docker exec 容器名 mongodump -d yapi -o /data/
进入到容器中打包备份文件
docker exec -it 容器名 /bin/bash
cd /data
tar -zcvf yapi.tar /data/yapi
将备份文件移动到宿主机
docker cp 容器名:/data/yapi.tar /data/backup
恢复
进入到新服务器,将备份文件copy到新服务的data/backup中
复制宿主机的备份文件到docker的mongo中
docker cp /data/backup/yapi.tar 容器名:/data/
进入到容器中解压文件
docker exec -it 容器名 /bin/bash
cd /data
tar -zxvf yapi.tar
还原数据
docker exec 容器名 mongorestore -d yapi --drop --dir /data/yapi
这篇关于Docker搭建Yapi及迁移的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!