docker下YApi部署教程-支持swagger数据导入

  • Post author:
  • Post category:其他




前言:

作为一个前端开发人员,经常会遇到一种情况就是 在后端接口没有出来之前,需要去mock数据,等待真实接口开发完后,替换成真实的接口,而在mock的过程中如果采用假数据的方式进行mock,一是增加无趣的工作量,二是造成了代码入侵,所以应该如果减少这种工作量呢?

其实作为前端可以搭建一个自己的mock平台,去帮我们完成mock和接口管理的工作

经过一番探索,最终选择由去哪儿开源的YApi进行接口mock管理


特性

  • 免费开源,内网部署,信息再也不怕泄露了
  • 支持 postman, har, swagger 数据导入
  • 支持mock数据,类似 postman 的接口调试
  • 自动化测试, 支持对 Response 断言
  • 支持插件多,可拓展性强

这里是

接口管理以及前端mock数据调研报告


最终选用

Docker

进行

YApi

部署



注意事项:

  • 安装有

    Git



    Docker




    Docker Compose

  • Yapi最好安装1.9.1 ===> 最新版本(1.10.1)版本中mock数据生成不友好
  • yapi-mongo安装4.4.4 ===> 安装5.X版本的会提示:MongoDB 5.0+ requires a CPU with AVX support



一、安装docker



1.更新yum源,更新到最新(也可不更)

[root@192-168-0-193 ~]# yum update
已加载插件:fastestmirror
Determining fastest mirrors
epel/x86_64/metalink                                                    | 9.1 kB  00:00:00
 * base: mirrors.aliyun.com
 * epel: mirrors.ustc.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
 ...
 ...
 正在解决依赖关系
--> 正在检查事务
---> 软件包 GeoIP.x86_64.0.1.5.0-13.el7 将被 升级
---> 软件包 GeoIP.x86_64.0.1.5.0-14.el7 将被 更新
--> 正在处理依赖关系 geoipupdate,它被软件包 GeoIP-1.5.0-14.el7.x86_64 需要
...
...
替代:
  iwl7265-firmware.noarch 0:22.0.7.0-69.el7

完毕!



2. 安装git(如已安装请忽略)

[root@192-168-0-193 ~]# yum install git
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: mirrors.ustc.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 git.x86_64.0.1.8.3.1-23.el7_8 将被 安装
...
...
已安装:
  git.x86_64 0:1.8.3.1-23.el7_8

作为依赖被安装:
  perl-Error.noarch 1:0.17020-2.el7               perl-Git.noarch 0:1.8.3.1-23.el7_8
  perl-TermReadKey.x86_64 0:2.30-20.el7           rsync.x86_64 0:3.1.2-10.el7

完毕!



3.安装需要的依赖软件包

yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

[root@192-168-0-193 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: mirrors.ustc.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
软件包 device-mapper-persistent-data-0.8.5-3.el7_9.2.x86_64 已安装并且是最新版本
软件包 7:lvm2-2.02.187-6.el7_9.5.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 yum-utils.noarch.0.1.1.31-54.el7_8 将被 安装
...
...
已安装:
  yum-utils.noarch 0:1.1.31-54.el7_8

作为依赖被安装:
  libxml2-python.x86_64 0:2.9.1-6.el7.5           python-kitchen.noarch 0:1.1.1-5.el7

完毕!



4.设置yum源

[root@192-168-0-193 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
已加载插件:fastestmirror
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo



5.安装Docker


yum list docker-ce --showduplicates | sort -r

上面代码可以查看所有仓库所有docker版本,选择特定版本进行安装

这里选择

17.12.1.ce

版本的进行安装,这里稍微有点慢,需要等待一下

[root@192-168-0-193 ~]# yum install docker-ce-17.12.1.ce
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: mirrors.ustc.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
docker-ce-stable                                                        | 3.5 kB  00:00:00
(1/2): docker-ce-stable/7/x86_64/updateinfo                             |   55 B  00:00:00
(2/2): docker-ce-stable/7/x86_64/primary_db                             |  63 kB  00:00:03
正在解决依赖关系
--> 正在检查事务
---> 软件包 docker-ce.x86_64.0.17.12.1.ce-1.el7.centos 将被 安装



6. 启动docker,加入开机启动

[root@192-168-0-193 docker-YApi]# systemctl start docker
[root@192-168-0-193 docker-YApi]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.



7. 查看版本是否成功安装

[root@192-168-0-193 docker-YApi]# 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



二、安装Dcoker Compose

[root@192-168-0-193 ~]# sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   633  100   633    0     0    903      0 --:--:-- --:--:-- --:--:--   902
100 15.4M  100 15.4M    0     0   466k      0  0:00:33  0:00:33 --:--:-- 2759k
[root@192-168-0-193 ~]# sudo chmod +x /usr/local/bin/docker-compose   // 将可执行权限应用于二进制文件
[root@192-168-0-193 ~]# sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose //创建软链
[root@192-168-0-193 ~]# docker-compose --version //测试是否安装成功
docker-compose version 1.24.1, build 4667896b



三、安装docker-YApi



1. 克隆docker-YApi

[root@192-168-0-193 ~]# mkdir myYapi && cd myYapi && git clone https://gitee.com/fjc0k/docker-YApi.git
正克隆到 'docker-YApi'...
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 477 (delta 1), reused 0 (delta 0), pack-reused 470
接收对象中: 100% (477/477), 84.42 KiB | 0 bytes/s, done.
处理 delta 中: 100% (260/260), done.



2. 修改docker-compose.yml配置文件


使用

vi docker-compose.yml

进入修改



  • yapi-web

    修改为

    1.9.1

    版本


  • yapi-mongo

    修改为

    4.4.4

    版本

  • YAPI_ADMIN_ACCOUNT

    为管理员邮箱

  • YAPI_ADMIN_PASSWORD

    为管理员密码
[root@192-168-0-193 myYapi]# ls
docker-YApi
[root@192-168-0-193 myYapi]# cd docker-YApi/
[root@192-168-0-193 docker-YApi]# ls
clean.ts            Dockerfile      LICENSE       prepare.ts  start.ts
docker-compose.yml  Dockerfile.web  package.json  README.md   tsconfig.json
[root@192-168-0-193 docker-YApi]# vi docker-compose.yml

version: '3'

services:
  yapi-web:
    image: jayfong/yapi:1.9.1  # 此处yapi-web修改为1.9.1版本
    container_name: yapi-web
    ports:
      - 40001:3000
    environment:
      - YAPI_ADMIN_ACCOUNT=admin@admin.com
      - YAPI_ADMIN_PASSWORD=admin
      - YAPI_CLOSE_REGISTER=true
      - YAPI_DB_SERVERNAME=yapi-mongo
      - YAPI_DB_PORT=27017
      - YAPI_DB_DATABASE=yapi
      - YAPI_MAIL_ENABLE=false
      - YAPI_LDAP_LOGIN_ENABLE=false
      - YAPI_PLUGINS=[]
    depends_on:
      - yapi-mongo
    links:
      - yapi-mongo
    restart: unless-stopped
  yapi-mongo:
    image: mongo:4.4.4  # 此处yapi-mongo修改为4.4.4版本
    container_name: yapi-mongo
    volumes:
      - ./data/db:/data/db



3. 启动服务==>端口40001

[root@192-168-0-193 docker-YApi]# docker-compose up -d  //-d参数表示在后台挂起
Creating network "docker-yapi_default" with the default driver
Pulling yapi-mongo (mongo:4.4.4)...
4.4.4: Pulling from library/mongo
6e0aa5e7af40: Pull complete
d47239a868b3: Pull complete
49cbb10cca85: Pull complete
9729d7ec22de: Pull complete
7b7fd72268d8: Pull complete
5e2934dacaf5: Pull complete
bf9da24d4b2c: Pull complete
d2f8c3715616: Pull complete
dac42b84e850: Pull complete
0724cb122c25: Pull complete
f0fe10b8b0c1: Pull complete
28e025c87f29: Pull complete
Digest: sha256:75a5f624bd6d14254e0d84c2833f576109672750aaf2bf01d61cb5ead44f4505
Status: Downloaded newer image for mongo:4.4.4
Pulling yapi-web (jayfong/yapi:1.9.1)...
1.9.1: Pulling from jayfong/yapi
cbdbe7a5bc2a: Pull complete
8f3938f7d3bd: Pull complete
6e3c12f5dc10: Pull complete
ce0cb7a9eeee: Pull complete
dbbdd36b7a14: Pull complete
262d0fbbe4df: Pull complete
Digest: sha256:d35a0b8b2d9b266df512e8bf42f0940228a66a9bc33e628df040dfbf4e32d13c
Status: Downloaded newer image for jayfong/yapi:1.9.1
Creating yapi-mongo ... done
Creating yapi-web   ... done



四、部署完成

地址栏输入:

http://部署机器的ip:40001/

进行访问

在这里插入图片描述



参考文档



往期精彩文章



版权声明:本文为weixin_45792953原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。