使用 Docker 部署 YAPI

1、运行 MongoDB

# 创建存储卷
docker volume create mongo-data# 启动 MongoDB
docker run -d \--name mongo-yapi \-v mongo-data:/data/db \-e MONGO_INITDB_ROOT_USERNAME=anoyi \-e MONGO_INITDB_ROOT_PASSWORD=anoyi.com \mongo

2、获取 YAPI 镜像,其他版本:阿里云镜像仓库

docker pull registry.cn-hangzhou.aliyuncs.com/anoyi/yapi

3、自定义配置文件

config.json

{"port": "3000","adminAccount": "admin@anoyi.com","timeout":120000,"db": {"servername": "mongo","DATABASE": "yapi","port": 27017,"user": "anoyi","pass": "anoyi.com","authSource": "admin"}
}

4、初始化 YAPI 数据库索引及管理员账号

docker run -it --rm \--link mongo-yapi:mongo \--entrypoint npm \--workdir /yapi/vendors \-v $PWD/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 3000:3000 \-v $PWD/config.json:/yapi/config.json \registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \server/app.js

使用 YAPI


访问: http://localhost:3000
登录账号:admin@anoyi.com
密码:ymfe.org

手动构建 YAPI 镜像

1、编辑 Dockerfile

FROM node:12-alpine as builder
WORKDIR /yapi
RUN apk add --no-cache wget python make
ENV VERSION=1.9.2
RUN wget https://github.com/YMFE/yapi/archive/v${VERSION}.zip
RUN unzip v${VERSION}.zip && mv yapi-${VERSION} vendors
RUN cd /yapi/vendors && cp config_example.json ../config.json && npm install --production --registry https://registry.npm.taobao.orgFROM node:12-alpine
MAINTAINER 545544032@qq.com
ENV TZ="Asia/Shanghai"
WORKDIR /yapi/vendors
COPY --from=builder /yapi/vendors /yapi/vendors
EXPOSE 3000
ENTRYPOINT ["node"]

注意将 Dockerfile 中的 VERSION 值修改为你需要构建的 YAPI 版本。

2、构建镜像

docker build -t yapi .

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 $PWD/config.json:/config.json \registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \server/app.js

制作本地的yapi docker镜像, docker-compose一键维护和部署.

YApi: Releases · YMFE/yapi · GitHub

制作本地的yapi docker镜像, docker-compose一键维护和部署.

  1. 初始化db, 开启自定义配置
git clone https://github.com/Ryan-Miao/docker-yapi.git
cd docker-yapi
docker-compose up

打开 localhost:9090

  • 默认部署路径为/my-yapi(需要修改docker-compose.yml才可以更改)
  • 修改管理员邮箱 ryan.miao@demo.com (随意, 修改为自己的邮箱)
  • 修改数据库地址为 mongo 或者修改为自己的mongo实例 (docker-compose配置的mongo服务名称叫mongo)
  • 打开数据库认证
  • 输入数据库用户名: yapi(mongo配置的用户名, 见mongo-conf/init-mongo.js)
  • 输入密码: yapi123456(mongo配置的密码, 见mongo-conf/init-mongo.js)

docker-compose.yml文件内容

# Use root/example as user/password credentials
version: '3.1'services:mongo:image: mongo:4restart: alwaysenvironment:MONGO_INITDB_ROOT_USERNAME: adminMONGO_INITDB_ROOT_PASSWORD: admin123456MONGO_INITDB_DATABASE: yapivolumes:- ./mongo-conf:/docker-entrypoint-initdb.d- ./mongo/etc:/etc/mongo- ./mongo/data/db:/data/dbports:- 27017:27017healthcheck:test: ["CMD", "netstat -anp | grep 27017"]interval: 2mtimeout: 10sretries: 3yapi:build:context: ./dockerfile: Dockerfileimage: yapi# 第一次启动使用command: "yapi server"# 之后使用下面的命令# command: "node /my-yapi/vendors/server/app.js"volumes:- ./my-yapi:/my-yapiports:- 9090:9090- 3000:3000depends_on:- mongo

init-mongo.js文件内容

db.createUser({ user: 'admin', pwd: 'admin123456', roles: [ { role: "root", db: "admin" } ] });db.auth("admin", "admin123456");db.createUser({user: 'yapi',pwd: 'yapi123456',roles: [{ role: "dbAdmin", db: "yapi" },{ role: "readWrite", db: "yapi" }]});

点击开始部署.

  1. 部署完毕后, 修改docker-compose.yml 启用
  yapi:build:context: ./dockerfile: Dockerfileimage: yapi# 第一次启动使用,第一次启动要把这个注释开起来command: "yapi server"# 之后使用下面的命令,把上面的command语句行注释,把下面的注释开启#command: "node /my-yapi/vendors/server/app.js"

重启服务:

docker-compose up

访问 localhost:3000

  • 输入用户名ryan.miao@demo.com(自己输入的管理员邮箱)
  • 输入密码ymfe.org(默认的初始化密码, 之后可以修改)

然后可以导入一个swagger的接口数据试试:

前台启动确认没问题后, 直接转为 后台启动

docker-compose stop或者contrl+C
docker-compose up -d

数据备份

所有数据都在mongo中, 理论上建议使用自己搭建的mongo实例, 这里docker的mongo也可以使用, 只要备份本mongo数据即可.

可以使用mongodb的备份方式, 也可以直接备份mongo/data.

版本升级

可以看出, 只要重新找个机器部署一遍, 然后导入mongo数据即可.

一些配置

部署路径

容器采用的node:12-alpine 这个镜像, yapi部署目录默认为my-yapi. 这里已经映射到本地磁盘, 也可以自己挂载想要的数据盘.

在docker-compose中配置了, 本地目录映射到容器目录my-yapi

    volumes: - ./my-yapi:/my-yapi

Mongo配置

本方案直接使用docker-compose的mongo. 定义了初始化脚本init-mongo.js. 修改即可修改账号和密码.

插件等配置

已经把yapi部署文件给映射到磁盘了, 该怎么安装就怎么安装.

注意yapi目前处于无人维护状态,源码有一些问题,直接下载安装插件可能失败,具体见 API可视化管理平台YApi - Ryan.Miao - 博客园

.
├── doc
│   ├── init-2.jpg
│   └── init.jpg
├── docker-compose.yml
├── Dockerfile
├── mongo
│   ├── data
│   │   └── db
│   └── etc
├── mongo-conf
│   └── init-mongo.js
├── my-yapi
│   ├── config.json
│   ├── init.lock
│   ├── log
│   │   └── 2020-6.log
│   └── vendors
│       ├── aa.js
│       ├── CHANGELOG.md
│       ├── client
│       ├── common
│       ├── config_example.json
│       ├── exts
│       ├── LICENSE
│       ├── node_modules
│       ├── nodemon.json
│       ├── npm-publish.js
│       ├── package.json
│       ├── package-lock.json
│       ├── plugin.json
│       ├── README.md
│       ├── server
│       ├── static
│       ├── webpack.alias.js
│       ├── yapi-base-flow.jpg
│       └── ykit.config.js
├── readme.md
└── repositories

一键部署YApi

注意:本仓库目前只支持安装,暂不支持升级,请知晓。如需升级请备份mongoDB内的数据。

默认密码是:ymfe.org,安装成功后进入后台修改

可修改变量

环境变量 默认值 建议
VERSION 1.10.2 强烈建议升级
HOME /home 可修改
PORT 3000 可修改
ADMIN_EMAIL test@test.com 建议修改
DB_SERVER mongo(127.0.0.1) 不建议修改
DB_NAME yapi 不建议修改
DB_PORT 27017 不建议修改
VENDORS ${HOME}/vendors 不建议修改

获取本镜像

docker pull mrjin/yapi:latest

docker-compose 部署

version: '2.1'
services:yapi:image: mrjin/yapi:latest# build: ./container_name: yapienvironment:- VERSION=1.10.2- LOG_PATH=/tmp/yapi.log- HOME=/home- PORT=3000- ADMIN_EMAIL=test@test.com- DB_SERVER=mongo- DB_NAME=yapi- DB_PORT=27017# restart: alwaysports:- 127.0.0.1:3000:3000volumes:- ~/data/yapi/log/yapi.log:/home/vendors/log # log dirdepends_on:- mongoentrypoint: "bash /wait-for-it.sh mongo:27017 -- entrypoint.sh"networks:- back-netmongo:image: mongocontainer_name: mongo# restart: alwaysports:- 127.0.0.1:27017:27017volumes:- ~/data/yapi/mongodb:/data/db #db dirnetworks:- back-net
networks:back-net:external: true

Nginx 配置

server {listen     80;server_name your.domain;keepalive_timeout   70;location / {proxy_pass http://yapi:3000;}location ~ /\. {deny all;}
}

启动方法

  1. 修改docker-compose.yml文件里面相关参数

  2. 创建network:docker network create back-net

  3. 启动服务:docker-compose up -d

docker-YApi

要求

你得确保在你的设备上安装了不是太老版本的 Docker 和 Docker Compose。

安装

首先,克隆本项目:

git clone https://github.com/fjc0k/docker-YApi.git# 无法访问 github 的可使用国内镜像:
git clone https://gitee.com/fjc0k/docker-YApi.git

接下来,修改 docker-compose.yml 中 yapi-web 下的环境变量 YAPI_ADMIN_ACCOUNT 为你的管理员邮箱,YAPI_ADMIN_PASSWORD 为你的管理员密码。

最后,执行 docker-compose up -d 启动服务。

然后,通过 http://localhost:40001 即可访问 YApi

如何配置

为了减少二次配置,docker-YApi 新增了 adminPassword 选项以设置管理员密码。

通过 config.json 或者 config.js 配置(不推荐)

config.json 是 YApi 官方支持的配置文件,config.js 是 docker-YApi 扩展支持的配置文件,其实就是将 JSON 数据写成了更简洁的 JavaScript 对象。

你可通过将外部的 config.json 或 config.js 配置文件映射进容器内部来使用它们:

./config.json:/yapi/config.json
./config.js:/yapi/config.js

通过环境变量配置(推荐)

通过环境变量配置的选项会覆盖通过 config.json 或者 config.js 配置的选项。

基础配置

环境变量名称 类型 说明 示例
YAPI_ADMIN_ACCOUNT string 管理员账号(邮箱) admin@foo.bar
YAPI_ADMIN_PASSWORD string 管理员密码 adm1n
YAPI_CLOSE_REGISTER boolean 是否关闭注册,由于 docker-YApi 已内置相关插件,你可在关闭注册后在后台手动添加用户 true
YAPI_NPM_REGISTRY string npm 源,目前仅在安装插件时使用,默认官方源,国内可以设为淘宝源加速 https://registry.npm.taobao.org

数据库配置

环境变量名称 类型 说明 示例
YAPI_DB_SERVERNAME string MongoDB 服务地址 yapi-mongo
YAPI_DB_PORT number MongoDB 服务端口 27017
YAPI_DB_DATABASE string 使用的 MongoDB 数据库 yapi
YAPI_DB_USER string 登录 MongoDB 服务的用户名 root
YAPI_DB_PASS string 登录 MongoDB 服务的用户密码 r00t
YAPI_DB_AUTH_SOURCE string MongoDB 身份认证所用库 admin
YAPI_DB_CONNECT_STRING string 使用 MongoDB 集群时配置 mongodb://127.0.0.100:8418,127.0.0.101:8418/yapidb?slaveOk=true
YAPI_DB_OPTIONS json Mongoose 连接 MongoDB 服务时的额外选项,一般不用设置。请参考: Mongoose.prototype.connect() {}

邮件配置

环境变量名称 类型 说明 示例
YAPI_MAIL_ENABLE boolean 是否启用 true
YAPI_MAIL_HOST string 邮件服务地址 smtp.163.com
YAPI_MAIL_PORT number 邮件服务端口 465
YAPI_MAIL_FROM string 发送人邮箱 foo@163.com
YAPI_MAIL_AUTH_USER string 登录邮件服务的用户名 bar@163.com
YAPI_MAIL_AUTH_PASS string 登录邮件服务的用户密码 f00bar
YAPI_MAIL_OPTIONS json 传递给 Nodemailer 的额外选项,一般不用设置。请参考:Nodemailer > SMTP transport {"tls":{"rejectUnauthorized":false}}

LDAP 登录配置

点击查看 YApi 仓库下 LDAP 相关的 issues 

yapi接口管理工具相关推荐

  1. Java后端接口自动生成神器 -- EasyYapi插件(Yapi接口管理工具在IDEA里的插件)

    Java后端接口自动生成神器 – EasyYapi插件(Yapi接口管理工具在IDEA里的插件) 一.先看效果 1.生成yapi文档的效果 2.生成postman格式数据并导入接口测试类后的效果(如p ...

  2. 接口管理工具Yapi禁用注册功能的配置解决方案

    之前公司运维安装了一个接口管理工具yapi,是通过docker安装的,时间有点久,安装的人也没了,容器是通过镜像/anoy/yapi安装的容器.默认yapi是可以开放注册的,因为公司外网开放的,所有发 ...

  3. YApi接口管理平台远程代码执行漏洞(含批量POC)

    0x00简介 YAPI是由去哪儿网移动架构组(简称YMFE,一群由FE.iOS和Android工程师共同组成的最具想象力.创造力和影响力的大前端团队)开发的可视化接口管理工具,是一个可本地部署的.打通 ...

  4. jenkins构建后脚本不执行_接口管理工具ApiPost-预(后)执行脚本常用方法集合

    本文主要讲解接口管理工具ApiPost的预执行脚本和后执行脚本里,常见的响应参数变量和常用方法集合. ApiPost简介: ApiPost是一个支持团队协作,并可直接生成文档的API调试.管理工具.它 ...

  5. 写在国产接口管理工具ApiPost 5.2.5发布后的一些话

    好多年没写文章了,突然想写些什么东西的时候,却卡顿如狗,瞬时自身的内存和CPU均红色报警,不知道从何处下笔. 遥想以前学生时代,本人还是语文老师口中的才子,曾多次向校报投稿,如今竟沦落到这个境地. 与 ...

  6. 利用ApiPost接口管理工具校验/测试API返回结果是否符合预期

    本文主要讲解接口管理工具ApiPost的预执行脚本和后执行脚本里,怎么校验/测试接口返回结果是否符合预期? ApiPost简介: ApiPost是一个支持团队协作,并可直接生成文档的API调试.管理工 ...

  7. 组件分享之后端组件——阿里妈妈前端团队出品的开源接口管理工具RAP第二代rap2-delos...

    组件分享之后端组件--阿里妈妈前端团队出品的开源接口管理工具RAP第二代rap2-delos 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件 ...

  8. ApiPost与PostMan,你可以任选一款不错的接口管理工具

    我们都知道在一个团队中是由很多角色组成的,例如:业务.产品.设计.前端.后端.测试.每个角色各司其职,一起合作完成项目的交付. 而前端与后端的沟通则是需要通过一个统一的文件进行沟通交流,即通过接口文档 ...

  9. 【云原生之Docker实战】使用Docker部署Rap2开源接口管理工具

    [云原生之Docker实战]使用Docker部署Rap2开源接口管理工具 一.Rap2介绍 二.检查宿主机系统版本 三.检查本地docker环境 1.检查docker服务状态 2.检查docker配置 ...

  10. 接口规范文档总结、接口管理工具推荐、如何写出完美的接口

    写在前面:这是我最近整理的接口规范文档,无规矩不成方圆,为了app开发人员与后台接口开发人员更好的配合,我特意整理了这么一篇文档供大家参考学习,如有意见请在评论区留言谢谢.因部分内容涉及公司代码,我对 ...

最新文章

  1. 音频编辑大师 3.3 注冊名 注冊码
  2. oracle10g总结
  3. Oracle高级查询之OVER (PARTITION BY ..)
  4. 作业收缴系统设计手册(自写开源小系统)
  5. docker搭建redis
  6. Android使用CountDownTimer倒计时
  7. cocos2d-xna在使用某些场景转换效果时的问题以及修复
  8. 【Spring】使用数据源连接池访问数据库
  9. android driver log,Android调试驱动抓log的方法
  10. R 学习笔记《十一》 R语言初学者指南--图形工具(续)
  11. 批量自动付款(京东)
  12. logistic回归分析优点_数据统计的理解和应用(十二)多因素logistic回归案例分析...
  13. 时间去哪儿了?--读《时间简史》有感
  14. java公路车的气嘴_5分钟了解运动自行车常见的两种气嘴
  15. 在美国成年人群体中,语音助手Siri已经成了第二大移动搜索引擎
  16. 网络安全kali渗透学习 web渗透入门 ARL资产侦察灯塔系统搭建及使用
  17. connected papers 白嫖攻略
  18. verilog学习:一个简单的入门verilog例子
  19. Protobuf 简介
  20. 常用的自动化管理工具

热门文章

  1. 前端资源汇总-酷站分享[转载]
  2. Win10怎么去除桌面快捷方式图标左下角的小箭头
  3. 1分钟教你快速使用C#查找和替换PDF文件中的文本
  4. 因为制作爬虫程序,我收到了警告
  5. 雷电模拟器打开应用权限_雷电模拟器超级用户权限怎么设置,是什么,怎么关闭【获取超级用户权限】通知提示,如何自动允许...
  6. 实战1--航空公司客户价值分析(画图篇)
  7. win10专业版占多少空间_Win10系统
  8. 2019年任正非给全体华为员工的信
  9. 搜索引擎的概念鄂州_搜索引擎的基本概念
  10. Craps小游戏简单代码实现