背景介绍
大四金融专业,最近在学习eggjs前端框架,因为Yapi官网的服务不稳定,所以文档想用Yapi来部署。
Yapi的优势简单介绍下,里面集成了文档系统,还有mock,使用起来很简单,开源,虽然官方一年没有人维护了,但是社区还是有不少开发者在维护,特别是docker hub的仓库里面有现成的镜像,试用了下,没有什么问题。MongoDB作为数据库,node的语法,适合前端开发者学习。
开工
ECS服务器装个centOS,然后按照官方文档教程安装MongoDB,然后是docker,虽然服务器镜像有现成的docker环境,但是这里还是想自己动手实践下安装。然后去docker Hub的官网对着yapipro/yapi的教程开始怼。部署好了以后去ECS的控制台把Yapi的服务端口外网权限打开,因为centOS没有图形界面,这里我又喜欢偷懒,所以把MongoDB的外网端口权限也打开了,MongoDB在安装和新建数据库的时候,把密码也设置上去就好了,以防有人扫出来密码,就是密码设置多了以后容易忘记,ECS一个账号密码,MongoDB一个,单个数据库实例一个,Yapi管理员权限账号一个,普通登录账户一个......太多太多。不知道大家实际部署的流程是怎么样处理的,我这边实在没办法就用密码本记了,密码本用的bitwarden,在chrome上安装了插件。密码确实太多,我自己反正是真的记不住。
docker部署YAPI流程简单说下:
docker创建存储卷,在仓库拉取MongoDB的镜像,启动MongoDB容器,进入容器,然后用管理员admin创建Yapi的数据库,创建给Yapi使用的数据库账密,然后限制一下这个账户的权限。
你看,启动MongoDB容器的时候就给了账密,现在又新建了YAPI数据库的账密,这就两个了。
然后退出容器的cli,在ECS宿主机创建一个Yapi的conconfig文件,等会要用这个文件实例化yapi的。
去docker的仓库拉取yapipro的镜像,接着初始化数据库的表,这个时候会根据刚才新建的config文件在表里插入一个YAPI的管理员账号密码,初始化密码可能不同的docker镜像不同,官方的跟yapipro就不同,我们这里用的yapipro,所以密码是yapi.pro,实在忘了就用Navicat连上去改一下。
接着docker run跑起来,这个时候yapi的服务就起来了。
然后在服务器curl一下看能不能通本地的3000端口,可以的话去ECS的控制台打开3000端口的外网权限,然后在你自己电脑访问试试。
这个过程有问题随时查看docker hub或者GitHub的issue
总结
这个服务器水管比较小,但是作为学习部署完全够用,而且在线的YAPI确实很有必要,不然你换个电脑又要不输一遍YAPI还要迁移备份MongoDB,你的项目的文档是在MongoDB里面的。docker因为一开始创建了存储卷,迁移很方便,服务器挂了就迁移一次快照就好了。总的来说自己部署一次能熟悉一遍Linux的基本操作以及node的相关知识,很有必要