Centos下,Docker部署Yapi接口管理平台
前言介绍
Yapi 由 YMFE 开源,旨在为开发、产品、测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建、发布、维护 API。
- 项目地址:https://github.com/YMFE/yapi
官网:https://yapi.ymfe.org/,Yapi具有以下功能特性;
权限管理
扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性可视化接口管理
基于 websocket 的多人协作接口编辑功能和类 postman 测试工具,让多人协作成倍提升开发效率Mock Server
易用的 Mock Server,MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回期望数据自动化测试(这个我比较关注)
完善的接口自动化测试,保证数据的正确性,支持对 Response 断言数据导入
接口支持导入 swagger, postman, har 数据格式,方便迁移旧项目
- 插件机制
强大的插件机制,满足各类业务需求
一,使用Docker创建Yapi容器
1,先安装docker,参考我另一篇文章,可用docker version查看docker版本

- [root@localhost ~]# docker version
- Client:
- Version: 17.12.1-ce
- API version: 1.35
- Go version: go1.9.4
- Git commit: 7390fc6
- Built: Tue Feb 27 22:15:20 2018
- OS/Arch: linux/amd64
- Server:
- Engine:
- Version: 17.12.1-ce
- API version: 1.35 (minimum version 1.12)
- Go version: go1.9.4
- Git commit: 7390fc6
- Built: Tue Feb 27 22:17:54 2018
- OS/Arch: linux/amd64
- Experimental: false

2,从仓库中拉取Yapi镜像,docker pull命令(拉取镜像(镜像地址https://hub.docker.com/r/silsuer/yapi/))

- [root@localhost ~]# docker pull silsuer/yapi
- Using default tag: latest
- latest: Pulling from silsuer/yapi
- 1be7f2b886e8: Pull complete
- 6fbc4a21b806: Pull complete
- c71a6f8e1378: Pull complete
- ...

3,使用镜像实例并运行容器,--name是指定容器名,-dit是指后台运行容器,并返回容器id(或者-it,指在当前窗口以伪终端进入容器,这里如果只用-d,容器启动后就会马上停止),-p是指端口映射(主机端口:容器端口,27017是数据库端口,9090是yapi初始化配置端口,3000是yapi实际运行端口)
- [root@localhost ~]# docker run --name yapi -dit -p 27017:27017 -p 9090:9090 -p 3000:3000 silsuer/yapi bash
- 3d3a94296f11c725ff091d52acb2e2a4bdb19d55354a0725f1e8b742c0a93ce7
4,查看当前正运行的容器,docker ps

- [root@localhost ~]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 3d3a94296f11 silsuer/yapi "bash" 25 minutes ago Up About a minute 0.0.0.0:3000->3000/tcp, 0.0.0.0:9090->9090/tcp, 0.0.0.0:27017->27017/tcp yapi

5,进入容器,有两种方式:docker attach yapi (exit退出容器后,容器停止运行)或者docker exec -it yapi bash(exit退出容器后,容器依旧运行)
- [root@localhost ~]# docker attach yapi
- root@3d3a94296f11:/# -------(这就是伪终端,进入容器后键入操作才显示)
二,容器中部署安装Yapi(以下命令需要进入到容器中,进入容器命令:docker attach yapi 或docker exec -it yapi bash 或docker exec -it 容器id bash)
1,启动MogoDB,Yapi部署需要数据库依赖
- root@3d3a94296f11:/# service mongodb start
- * Starting database mongodb [ OK ]
2,因为Yapi需要git支持,先升级git源(因为如果不先安装git直接部署Yapi会出现错误)
- root@3d3a94296f11:/# apt-get update
- Ign:1 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 InRelease
- Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
- Get:3 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 Release [3457 B]
- ...
3,安装git,中途需要输入y同意安装

- root@3d3a94296f11:/# apt-get install git
- Reading package lists... Done
- Building dependency tree
- Reading state information... Done
- The following packages were automatically installed and are no longer required:
- ...

4,查看升级后的get版本
- root@3d3a94296f11:/# git --version
- git version 2.7.4
5,启动Yapi服务进行部署配置,有如下bash提示
- root@3d3a94296f11:/# yapi server
- 在浏览器打开 http://0.0.0.0:9090 访问。非本地服务器,请将 0.0.0.0 替换成指定的域名或ip
- /bin/sh: 1: xdg-open: not found
- 启动后,会在bash中提示你访问localhost:9090或者http://0.0.0.0:9090完成Yapi的初始化配置(记得在阿里云控制台安全组打开9090端口或者其他云平台安全组中放开9090端口)
我这里是因为配置到了阿里云服务器上,所以访问http://0.0.0.0:9090是不可能成功的,我这里需要访问http://IP:9090才能成功显示
6,使用本地浏览器打开:http://IP:9090或者http://0.0.0.0:9090,如
7,配置完成后,点击开始部署,如下
打开后的界面就是这样,填写好对应的信息,点击开始部署。发生报错,就根据错误信息查找原因。我在安装的时候有一个报错
- Error: (node:952) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
这个错误是因为mongodb版本的问题,其中的服务在mongo3的时候就已经弃用了,后来和大家交流了下,不用管,可以正常使用,也确实是的。这个问题官方已经在最新版里面修复了,所以以后安装也不会出现这个报错了(我安装的时候是1.4.1)。
8,部署成功后,查看命令窗口,显示如下

- ...
- added 345 packages in 53.839s
- 依赖库安装完成,正在初始化数据库mongodb...
- > yapi@1.3.22 install-server /my-yapi/vendors
- > node server/install.js
- log: mongodb load success...
- 初始化管理员账号成功,账号名:"admin@admin.com",密码:"ymfe.org"
- 部署成功,请切换到部署目录,输入: "node vendors/server/app.js" 指令启动服务器, 然后在浏览器打开 http://127.0.0.1:3000或者http://ip:3000(放开3000端口) 访问

9,根据上图提示,记住账户名和密码,ctrl+c停止安装程序并切换到部署目录(/my-yapi/),输入: "node vendors/server/app.js" 指令。
- root@3d3a94296f11:/# cd /my-yapi/
- root@3d3a94296f11:/my-yapi# node vendors/server/app.js
- log: the server is start at 127.0.0.1:3000
- log: mongodb load success...
10,浏览器打开上面地址:http://ip:3000或者http://127.0.0.1:3000,(安全组放开3000端口)使用上面记住的账号密码就可以登录了,如下图
--------------注意1:如果还要使用容器中的命令窗口,先按ctrl+c可以结束yapi进程,再执行nohup node /my-yapi/vendors/server/app.js 2>&1 & 在后台运行yapi,如下

- root@3d3a94296f11:/my-yapi# node vendors/server/app.js
- log: the server is start at 127.0.0.1:3000
- log: mongodb load success...
- ^C
- root@3d3a94296f11:/my-yapi# nohup node /my-yapi/vendors/server/app.js 2>&1 &
- [1] 91
- root@3d3a94296f11:/my-yapi# nohup: ignoring input and appending output to 'nohup.out'
- root@3d3a94296f11:/my-yapi#

--------------注意2:如果想yapi后台运行并退出容器,开始是以docker exec -ti yapi bash方式进入的容器,输入exit就可以了,以docker attach方式进入的容器,按ctrl+p+q(你没看错,就是三个键同时按),出现下图所示就可以了
- root@3d3a94296f11:/# read escape sequence
- [root@localhost ~]#
如下图显示:
登录后的管理界面如下图:
Centos下,Docker部署Yapi接口管理平台的更多相关文章
- (转)Centos下,Docker部署Yapi接口管理平台
接口测试的工具很多,公司引进了接口管理平台Yapi,自己尝试直接搭建,从安装Nodejs到配置MongoDB数据库,再到安装yapi的时候,遇到浏览器打开本地服务器Ip地址后,没有显示部署内容...没 ...
- Centos下,Docker部署Yapi接口管理平台(详细得令人发指)
接口测试的工具很多,公司引进了接口管理平台Yapi,自己尝试直接搭建,从安装Nodejs到配置MongoDB数据库,再到安装yapi的时候,遇到浏览器打开本地服务器Ip地址后,没有显示部署内容...没 ...
- Yapi接口管理平台 本地部署 windows环境 -
YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只 ...
- 部署 YApi 接口管理服务
安装 Node curl -sL https://rpm.nodesource.com/setup_8.x | bash - yum install -y nodejs 安装 MongoDB vi / ...
- 安装YApi 接口管理平台
yum install mongodb yum install -y nodejs git clone https://gitee.com/mirrors/YApi.git 克隆项目到本地 使用命令进 ...
- YApi——手摸手,带你在Win10环境下安装YApi可视化接口管理平台
手摸手,带你在Win10环境下安装YApi可视化接口管理平台 YApi YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建 ...
- linux 上部署 YApi 可视化接口管理平台
linux 上部署 YApi 可视化接口管理平台: YApi 是一个高效.易用.功能强大的可视化接口管理平台,官方地址 : http://yapi.demo.qunar.com/ 环境要求 nodej ...
- 这个接口管理平台 eoLinker 开源版部署指南你一定不想错过
本文主要内容是讲解如何在本地部署eoLinker开源版. 环境要求 1.PHP 5.5+ / PHP7+(推荐) 2.Mysql 5.5+ / Mariadb 5.5+ 3.Nginx(推荐) / A ...
- 这份接口管理平台 eoLinker 开源版的部署指南教程你一定不想错过
本文主要内容是讲解如何在本地部署eoLinker开源版. 环境要求 1.PHP 5.5+ / PHP7+(推荐) 2.Mysql 5.5+ / Mariadb 5.5+ 3.Nginx(推荐) / A ...
随机推荐
- 【转】浅谈命令查询职责分离(CQRS)模式
原文链接:https://www.cnblogs.com/yangecnu/p/Introduction-CQRS.html 在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查 ...
- jquery-获取button的值
<button id="test" name="test_name" value="test_value"></butto ...
- python集合和eval的使用
python集合和eval的使用 创建集合 使用工厂方法 set()和 frozenset(): >>> s = set('cheeseshop') >>> s s ...
- 【转】淘宝UED上关于chrome的transition闪烁问题的解决方案
最近在用BetterScroll实现一个功能的时候,在滚动区域中会有一个绝对定位的按钮,结果在IOS中出现了快速滚动,停止的时候,会先消失后显现的问题,所以查找了相关的文章,发现是transition ...
- 前端小白webpack学习(四)
.less文件与.scss文件使用与.css文件相仿 less-loader使用需要借助less插件,终端输入npm i less less-loader -D安装; sass-loader使用需要借 ...
- c#实现SharedMatting抠图算法
内容简介 将Alpha Matting抠图算法由c++ 版本移植至c#环境. 主要采用OpenCV的C#版本Emgu取代c++支撑的OpenCV. 参考资料 http://www.inf.ufrgs. ...
- [Go] 轻量服务器框架全局配置的实现以及解析json
在一个应用中经常需要有一个配置文件,可以对代码中的参数进行配置,可以使用一个json文件来对应一个struct的对象,进行全局配置 建一个conf/zinx.json作为配置文件 { "Na ...
- C语言基本数据类型的转换
变量的数据类型是可以转换的.转换的方法有两种,一种是自动转换,一种是强制转换.自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成.自动转换遵循以下规则:1) 若参与运算量的类型不同,则先转换 ...
- 2.28秒创建一个k8s集群(非理论篇,理论自行 -- )
准备3台centos 7+ (建议7以上,不然要会很麻烦,要升级内核等等,扯淡的东西) 安装docker 和k8s集群(均以最新版为例)基于官网 设置静态ip(可选) 查看本机的网关ip cd /Li ...
- SpringBoot开发准备工作,保存备用,
application.properties server.port=8080 spring.thymeleaf.prefix = classpath:/static/ spring.thymelea ...