Centos下,Docker部署Yapi接口管理平台

  前言介绍

   Yapi 由 YMFE 开源,旨在为开发、产品、测试人员提供更优雅的接口管理服务,能够帮助开发者轻松建立、发布、维护 API。html

项目地址:https://github.com/YMFE/yapi

官网:https://yapi.ymfe.org/,Yapi具备如下功能特性;node

  • 权限管理
    扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性linux

  • 可视化接口管理
    基于 websocket 的多人协做接口编辑功能和类 postman 测试工具,让多人协做成倍提高开发效率git

  • Mock Server
    易用的 Mock Server,MockServer 除支持普通的随机 mock 外,还增长了 Mock 指望功能,根据设置的请求过滤规则,返回指望数据github

  • 自动化测试(这个我比较关注)
    完善的接口自动化测试,保证数据的正确性,支持对 Response 断言web

  • 数据导入
    接口支持导入 swagger, postman, har 数据格式,方便迁移旧项目mongodb

  • 插件机制

   强大的插件机制,知足各种业务需求docker

一,使用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/))ubuntu

复制代码
[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 ~]# 
以下图显示:

 登陆后的管理界面以下图:

相关文章
相关标签/搜索