POSTS
使用docker搭建YApi接口平台
因为公司需要,让我考虑一下团队接口规范的问题,我也看了很多接口管理平台,比如rap、eoLinker、SosoApi、NEI、swagger等,因为自己喜好的问题,对这些都不是太满意,直到遇见了YApi,去哪儿前端团队YMFE的开源项目,不管是界面还是功能,我都感觉挺不错的,使用起来也比较简单。接下来我将介绍平台的搭建,分别为官方部署、docker部署(推荐)。
我这里操作系统是centos7。
环境要求
- nodejs(7.6+)
- mongodb(2.6+)
- git
安装node.js
因为之前从node官网下载的版本可能有点太高,部署过程中一直有问题,这里指定版本。选择版本8.x。
获取资源
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
安装node
yum install -y nodejs
查看版本
node -v #node版本 npm -v #npm版本
- 安装mongodb
这里也选择指定版本v3.4。
添加yum源,修改文件mongodb-3.4.repo
vim /etc/yum.repos.d/mongodb-3.4.repo #添加下面的内容,wq保存。 [mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck= 0 enabled=1
安装
yum install -y mongodb-org
禁用selinux
- 修改config文件
vim /etc/selinux/config #将SELINUX=enforcing改为SELINUX=disabled,wq保存。
- 重启服务器
reboot
启动mongodb
systemctl start mongod
#查看mongodb状态
systemctl status mongod
部署YApi
- 安装YApi
npm install -g yapi-cli --registry https://registry.npm.taobao.org #启动yapi yapi server
根据提示访问
http://服务器的IP:9090。
进入可视化部署界面后,如果端口3000服务器占用了,换个端口,其他配置默认就行。
如果出现 初始化管理员账号成功,就代表部署没问题。
#界面会出现默认账号密码 登录账号 admin@admin.com,密码 ymfe.org #出现账号密码后,退出当前状态 ctrl + c
- 然后接下来就启动YApi服务。PM2使用
#切换到部署目录,启动服务 node vendors/server/app.js #后台启动服务,使用pm2(node进程管理工具) npm install -g pm2 pm2 start vendors/server/app.js --watch #查看进程列表及状态 pm2 list #停止服务 pm2 stop app
- 访问
http://服务器ip:3000
,登录账号密码,就搭建成功了。
如果需要修改配置信息,编辑 **/my-yapi/config.json文件,然后再启动YApi服务(重复上面的步骤)
升级YApi
#进入my-yapi目录,查看版本列表 yapi ls #更新到最新版本 yapi update #更新到指定版本 yapi update -v {Version}
二、docker部署(推荐) docker安装参考文档 docker部署YApi参考文档
- 卸载docker旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
- 安装docker,这里简化操作,使用脚本自动安装
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
#执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的 Edge 版本安装在系统中。
- 启动docker
sudo systemctl start docker
#设置开机自启
sudo systemctl enable docker
#查看版本
docker -v
- 安装docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose -v
使用Dockerfile构建YApi镜像
- 创建entrypoint.sh 执行文件
touch entrypoint.sh
- 给entrypoint.sh添加内容
#!/bin/sh if [ ! -e "/app/runtime/init.lock" ]; then echo "=============================" echo "Install server after 6s....." echo "=============================" sleep 6s echo "=============================" echo "Installing server ..........." echo "=============================" npm run install-server else echo "=============================" echo "Connect MongoDB after 3s ...." echo "=============================" sleep 3s fi; node /app/vendors/server/app.js
- 创建Dockerfile
FROM node:8-alpine as builder ARG TAG=v1.3.22 ARG REGISTRY=https://registry.npm.taobao.org RUN apk add --no-cache git python make g++ \ && git clone --branch $TAG --depth 1 https://github.com/YMFE/yapi.git /vendors \ && cd /vendors \ && sed -i -e 's|init\.lock|runtime/init.lock|g' server/install.js \ && npm install --no-optional --production --registry ${REGISTRY} FROM node:8-alpine RUN apk add --no-cache tini WORKDIR /app/vendors EXPOSE 3000 COPY --from=builder /vendors /app/vendors COPY ./entrypoint.sh /app/vendors/ ENTRYPOINT [ "/sbin/tini", "--" ] CMD [ "/app/vendors/entrypoint.sh" ]
- 创建 docker-compose.yml
version: "3" services: mongo: image: mongo:3 container_name: mongo networks: - yapi environment: - MONGO_INITDB_ROOT_USERNAME=yapi - MONGO_INITDB_ROOT_PASSWORD=yapi - MONGO_INITDB_DATABASE=yapi volumes: - ./mongo-data:/data/db yapi: image: wyntau/ymfe-yapi container_name: yapi depends_on: - mongo ports: - "3000:3000" networks: - yapi volumes: - ./config.json:/app/config.json - ./yapi-runtime:/app/runtime networks: yapi:
- 自定义YApi配置信息config.json
{ "port": "3000", "adminAccount": "admin@admin.com", "db": { "servername": "mongo", "DATABASE": "yapi", "port": 27017, "user": "yapi", "pass": "yapi", "authSource": "admin" } }
以上文件配置好后,同一目录下会有四个文件
- 然后构建镜像并启动服务
#构建镜像
docker build -t ymfe-yapi .
#启动YApi服务
docker-compose up -d
- 访问
http://服务器ip:3000
,登录账号是config.json文件定义的adminAccount值,第一次登录密码是ymfe.org
,进入平台后可以在个人信息中心修改自己的密码。
YApi平台视图:
两种方式搭建YApi平台就介绍完了,祝大家好运吧。。