Docker搭建Yapi及迁移

2024-01-22 04:38
文章标签 docker 搭建 迁移 yapi

本文主要是介绍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及迁移的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/631866

相关文章

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

关于Docker Desktop的WSL报错问题解决办法

《关于DockerDesktop的WSL报错问题解决办法》:本文主要介绍关于DockerDesktop的WSL报错问题解决办法的相关资料,排查发现是因清理%temp%文件夹误删关键WSL文件,... 目录发现问题排查过程:解决方法其实很简单:重装之后再看就能够查到了:最后分享几个排查这类问题的小www.cp

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中