zoukankan      html  css  js  c++  java
  • 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 ~]# 
    如下图显示:

     登录后的管理界面如下图:

  • 相关阅读:
    [算法] 堆栈
    [刷题] PTA 02-线性结构3 Reversing Linked List
    java IO流 (八) RandomAccessFile的使用
    java IO流 (七) 对象流的使用
    java IO流 (六) 其它的流的使用
    java IO流 (五) 转换流的使用 以及编码集
    java IO流 (四) 缓冲流的使用
    java IO流 (三) 节点流(或文件流)
    java IO流 (二) IO流概述
    java IO流 (一) File类的使用
  • 原文地址:https://www.cnblogs.com/zmdComeOn/p/11826248.html
Copyright © 2011-2022 走看看