Docker部署YApi
(1)下载YApi代码和二次开发

首先选择YApi版本进行下载,下载地址如下
https://github.com/YMFE/yapi/releases
在这里插入图片描述
在这里插入图片描述
上面是我整理后的目录结构,其中vendors存放的是YApi下载后的源码,对应第一层目录。本次使用Dockerfile来构建镜像,对于想要二次开发的人员来说可以直接修改其源码后面的部署方式同样适用,但是如果是公司项目还是搭配上Jenkins来处理

Config.json:配置数据库相关信息
docker-entrypoint.sh: 启动server脚本

config.json文件
adminAccount:登录账号,密码默认为ymfe.org
Servername:mongodb地址,注意不要写127.0.0.1

备注:如果mongodb没有密码可以不写

{
  "port": "3000",
  "adminAccount": "admin@admin.com",
  "timeout":120000,
  "db": {
    "servername": "192.168.xxx.xxx",
    "DATABASE": "yapi",
    "port": 27017,
    "user": "yapi",
    "pass": "123456",
    "authSource": ""
  },
  "mail": {
    "enable": true,
    "host": "smtp.163.com",
    "port": 465,
    "from": "***@163.com",
    "auth": {
      "user": "***@163.com",
      "pass": "*****"
    }
  }
}

docker-entrypoint.sh: 启动server脚本

#!/bin/bash
node /home/api/vendors/server/app.js

Dockerfile

FROM node
RUN apt-get install -y  git python make openssl tar gcc
ADD ./vendors/  /home/api/vendors
RUN cd /home/api/vendors && \
    npm install --production --registry https://registry.npm.taobao.org

MAINTAINER ah.zhangpan
ENV TZ="Asia/Shanghai" HOME="/"
WORKDIR ${HOME}


COPY ./config.json /home/api/
EXPOSE 3000

COPY docker-entrypoint.sh /home/api/
RUN chmod 755 /home/api/docker-entrypoint.sh

ENTRYPOINT ["/home/api/docker-entrypoint.sh"]
(2)安装Mongdb

这里的mongodb也是使用docker安装的,

//下载镜像
docker pull mongo:latest
//查看镜像
docker images
//运行,暴露端口
docker run -itd --name mongo -p 27017:27017 mongo --auth
//进入mongodb容器内
docker exec -it mongo mongo admin
//创建一个名为 admin,密码为 123456 的用户。
 db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
//尝试使用上面创建的用户信息进行连接。
db.auth('admin', '123456')

– 设置yapi用户

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

(3)构建自定义的YApi镜像、初始化数据库、启动YApi

将上面构建好的文件上传到服务器上,后续通过jenkins配置,文件结构如下
在这里插入图片描述
构建镜像
docker build -t yapi .

构建成功后,开始初始化数据库

– 初始化数据库

1647a83fa147:对应的是mongo的容器ID
workdir :对应前面Dockerfile配置的路径

docker run -it --rm   --link  1647a83fa147:mongo   --entrypoint npm   --workdir /home/api/vendors   yapi    run install-server

初始化成功会显示初始分配的账号密码:
admin@admin.com ymfe.org
此时可以去登录数据库看yapi下是否生成了对应的集合数据

– 启动,使用下面命令即可启动,启动成功后,访问 IP地址:3000即可

docker run -d   --name yapi   --link 1647a83fa147:mongo   --workdir /home/api/vendors     -p 3000:3000   yapi    server/app.js

在这里插入图片描述

YApi相关问题及解决
(1)YApi 新版如何查看 http 请求数据

因chrome 安全策略限制,在 cross-request 升级到 3.0 后,不再支持文件上传功能,并且需要通过以下方法查看 network:

1.首先在chrome 输入 chrome://extensions 打开扩展页

2:开启开发者模式
在这里插入图片描述
3:点击 cross-request 背景页, 打开 network 就能看到新发起的请求信息,注意保持这个开启的页面不要关闭,最好固定在页面某一侧方便观察

(2)Yapi出现 请求异常,请检查 chrome network 错误信息

1:检查cross-request是否安装成功
2:检查填写的URL地址是否正确,如果填写错误会一直报返回的data类型不正确

例如当前需要请求的API是:
http://192.168.208.113:8080/code

在这里插入图片描述

在这里插入图片描述

(3)chrome 安装 yapi 扩展插件

https://github.com/YMFE/cross-request/archive/master.zip
打开 chrome://extensions,加载已解压的扩展程序

参考

官方文档:https://hellosean1025.github.io/yapi/documents/index.html
Github地址:https://github.com/YMFE/yapi
安装部署参考:https://www.jianshu.com/p/a97d2efb23c5

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐