一、简单的方式构建shell脚本
将附录的yapi_help.sh,config.json,Dockerfile以及构建或升级用的yapi.tar.gz。放到同一目录下即可。
根据yapi_help指引进行构建或升级操作
注意:yapi源码的压缩包文件名必须是yapi.tar.gz。解压后的文件夹名字必须是yapi。
二、手动构建
- 安装mongodb,并且设置数据库数据文件映射
docker run -p 27017:27017 -v /data/db:/data/db --name mongo-yapi -d mongo
-p 27017:27017 :将容器的27017 端口映射到主机的27017 端口
-v $PWD/db:/data/db :将主机中当前目录下的db挂载到容器的/data/db,作为mongo数据存储目录 - Dockerfile文件内容
见附录 - config.json文件内容
见附录 - 准备好 yapi.tar.gz
如果是官方github下载下来的yapi.tar.gz压缩包。
tar zxvf yapi.tar.gz
解压
mv yapi-1.8.5/ yapi
改变文件夹名称为yapi
tar zcvf yapi.tar.gz yapi
重新压缩
将Dockerfile、config.json、yapi.tar.gz放置在同一目录下,并cd到当前目录,执行接下来的命令。 - 构建docker img
docker build -t yapi -f Dockerfile .
- 构建完成之后执行 docker images 显示如下
[root@localhost yapi1.8.0]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
yapi latest 070a31990cfa 34 seconds ago 175MB
<none> <none> 166fcc9bacd6 40 seconds ago 360MB
...
第二个none的镜像可以删除。
docker rmi 166fcc9bacd6
<— 这个id改成你生成的non镜像的id
7.运行
docker run --name yapi --link mongo-yapi:mongo --entrypoint npm --workdir /api/vendors -it yapi run install-server
输出以下结果
> yapi-vendor@1.8.0 install-server /api/vendors
> node server/install.js
log: mongodb load success...
初始化管理员账号成功,账号名:"admin@admin.com",密码:”ymfe.org”
- 删除刚刚用于初始化yapi数据库的容器
docker rm -it yapi
- 创建真正用于运行yapi的容器
docker run -d --name yapi --link mongo-yapi:mongo --workdir /api/vendors -p 3000:3000 -it yapi server/app.js
- 浏览器访问
IP:3000 - 登陆站点管理员账号
账号:admin@admin.com
密码:ymfe.org - 个人中心可以修改站点管理员密码
常见问题
1.注意:站点管理员账号,无法在系统中修改。但是可以直接修改数据库用户表中对应记录即可。
三、附录
1.yapi_help.sh
#!/bin/bash
# 构建yapi docker 镜像
function build_img(){
local version=$1
if [ -z $version ];then
echo ">>>>> 默认版本号:latest"
version='latest'
else
echo ">>>>> 生成镜像版本号为"$version
fi
sudo docker build