Docker快速内网部署YApi Mock服务平台

206 阅读2分钟

介绍

通过docker快速内网部署YApi Mock服务平台

GitHub仓库: github.com/OnlyBrownAn…

准备资料

  1. 已安装过docker
  2. yapi官网: hellosean1025.github.io/yapi/index.…
  3. mongosh: www.mongodb.com/docs/mongod…
  4. mock.js: github.com/nuysoft/Moc…
  5. mongoose: mongoosejs.net/docs/connec…
  6. docker-mongo: hub.docker.com/_/mongo/#!

默认设置

mongoDB
默认数据库: yapi
默认初始密码: root
默认初始密码: password

YApi:
管理员账号: root@email.com
管理员密码: ymfe.org

YApi访问地址: http://127.0.0.1:3000
mongoDB数据库管理(express): http://127.0.0.1:8081

部署步骤

可以通过以下命令查看容器列表: docker ps -a

假设mongoDB docker容器ID(CONTAINER ID)是ca49b6c498cb

假设node docker容器ID(CONTAINER ID)是5c1d09ec15c3

下载YApi Git仓库

git clone https://github.com/YMFE/yapi.git vendors 
// 或者下载 zip 包解压到 vendors 目录(clone 整个仓库大概 140+ M,可以通过 `git clone --depth=1 https://github.com/YMFE/yapi.git vendors` 命令减少,大概 10+ M)

创建docker网络

docker network create yapi_default

执行docker.yml

部署mongoDB、mongo-express、node

docker-compose -f docker-compose-1.yml up -d

运行http://127.0.0.1:8081能查看到数据库信息,即安装成功

进入mongoDB配置访问用户

  1. 查看当前docker列表,获取当前mongoDB docker的容器ID(CONTAINER ID)
docker ps -a
  1. 进入容器
docker exec -it ca49b6c498cb /bin/bash
  1. 配置访问用户
mongosh "mongodb://root:password@127.0.0.1:27017"

use yapi 

db.createUser({user:"root",pwd:"password",roles:[{"role":"readWrite","db":"yapi"}]})

YApi配置文件

  1. 查看当前docker局部网络的ip情况,获取mongoDB docker的IP
docker network inspect yapi_default

假设得到mongoDB docker所分配的是192.168.80.2/20

  1. YApi配置文件config.json,设置mongoDB地址为步骤1中得到的192.168.80.2
  2. 设置config.json中db.authSource="admin"

因为yapi连接mongoDB的默认管理员密码是mongoDB的admin库中的用户。

部署启动YApi

  1. 查看当前docker列表,获取当前node docker的容器ID(CONTAINER ID)
docker ps -a
  1. 进入容器
docker exec -it 5c1d09ec15c3 /bin/bash
  1. 执行以下命令
// 配置YApi
cd vendors && npm install --production --registry https://registry.npm.taobao.org && npm run install-server

// 并会提示'初始化管理员账号成功,账号名:"root@email.com",密码:"ymfe.org"'

// 启动服务
node server/app.js

当提示"log: 服务已启动,请打开下面链接访问:"时,就意味着安装完成。

常见问题处理

  1. 在第一次安装完成之后,node docker突然关闭该如何启动
// 启动docker
docker restart ca49b6c498cb

// 进入docker
docker exec -it 5c1d09ec15c3 /bin/bash

// 进入工程路径
cd vendors

// 重启服务
node server/app.js
  1. mongoDB docker突然关闭了该如何启动
// 启动docker
docker restart ca49b6c498cb
  1. 在执行过node server/app.js的情况下再执行命令时会报错"已有init.lock文件"

再删掉该文件即可

  1. 重新启动node docker后发现yapi连不上mongoDB数据库,表现情况是登陆不上去
1 查看当前docker局部网络的ip情况,获取mongoDB docker的IP
docker network inspect yapi_default
// 假设得到mongoDB docker所分配的是192.168.80.2/20
YApi配置文件config.json,设置mongoDB地址为步骤1中得到的192.168.80.2
即可以访问成功