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: 1. 首先,确保已经安装了 DockerDocker Compose。你可以参考 Docker 官方文档来安装它们。 2. 创建一个文件夹来存放 Yapi 的配置和数据文件。你可以使用以下命令创建文件夹: ``` mkdir yapi ``` 3. 进入 yapi 文件夹,并在其中创建一个名为 `docker-compose.yml` 的文件,内容如下: ```yaml version: "3" services: yapi: image: helight/yapi restart: always ports: - 3000:3000 volumes: - ./config.json:/yapi/vendors/config.json - ./data:/yapi/vendors/data ``` 4. 在 yapi 文件夹中创建一个名为 `config.json` 的文件,用于配置 Yapi。你可以根据需要进行配置,以下是一个示例配置的基本结构: ```json { "port": "3000", "db": { "servername": "mongo", "DATABASE": "yapi", "port": 27017, "user": "root", "pass": "ymfe.org" }, "mail": { "enable": false, "host": "", "port": 465, "from": "", "auth": { "user": "", "pass": "" } }, ... } ``` 注意:这里的 `servername` 应该设置为 `mongo`,因为我们将使用官方的 MongoDB 镜像作为数据库。 5. 确保你的 Docker 服务已经启动,然后在 yapi 文件夹中运行以下命令启动 Yapi 容器: ``` docker-compose up -d ``` 6. Yapi 容器启动后,你可以通过浏览器访问 `http://localhost:3000` 来访问 Yapi。 这样,你就成功在 Docker 中安装了 Yapi。记得根据你的实际需求进行配置,并确保相关端口没有被占用。希望对你有所帮助!如有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值