api管理平台yapi容器化
docker yapi
yapi容器化,yapi的dockerfile
yapi github 地址 是 https://github.com/YMFE/yapi
官方地址是 https://hellosean1025.github.io/yapi/
体验地址是 https://yapi.baidu.com/
1. 首先我们下载yapi的源代码,解压在本地,最新版本是1.9.2
目录层次如下
--my-yapi
----yapi
------vendors
源代码方在vendors下面,yapi下面会有config.json,映射进来的,打包的时候不放,my-yapi下面放Dockerfile,用来docker build
2.Dockerfile
FROM node:12.20.1 as builder RUN npm config set registry https://registry.npm.taobao.org RUN mkdir -p /home/node/yapi COPY yapi /home/node/yapi/ WORKDIR /home/node/yapi/vendors RUN npm install --production FROM node:12.20.1-alpine3.10 LABEL maintainer=xiesj@live.com ENV TZ="Asia/Shanghai" USER node RUN mkdir -p /home/node/yapi COPY --from=builder /home/node/yapi/vendors /home/node/yapi/vendors WORKDIR /home/node/yapi/vendors EXPOSE 3000 CMD node server/app.js
docker镜像可以使用docker.mirrors.ustc.edu.cn,nodejs镜像使用https://registry.npm.taobao.org
我们使用了2个原始image,一个是node:12.20.1另外一个是node:12.20.1-alpine3.10
第一个作为build用,第二个作为运行用
首先我们拉去原始镜像
docker pull docker.mirrors.ustc.edu.cn/library/node:12.20.1
docker pull docker.mirrors.ustc.edu.cn/library/node:12.20.1-alpine3.10
docker tag docker.mirrors.ustc.edu.cn/library/node:12.20.1 node:12.20.1
docker tag docker.mirrors.ustc.edu.cn/library/node:12.20.1-alpine3.10 node:12.20.1-alpine3.10
然后我们制作容器镜像,这里使用多个from,如果只使用第一个,那么我们镜像大小是1G,如果是用node alpine原始镜像大概178m。但是alpine镜像没有nodejs的编译环境,比较不方便,所以我们使用2个镜像
编译的时候默认使用root账号,运行环境我们使用原始镜像的user node
在my-yapi下面执行
docker build -t yapi:1.9.2 .
完成之后我们需要安装,安装之前启动mongo,mongo可以使用默认admin账号,也可以新建一个账号,新建账号需要有yapi数据库的权限
初始化数据库
docker run -it --rm -v /home/xxxxxx/my-yapi/yapi/config.json:/home/node/yapi/config.json yapi:1.9.2 npm run install-server
启动容器
docker run -itd --name yapi -p 3000:3000 -v /home/xxxxxx/my-yapi/yapi/config.json:/home/node/yapi/config.json yapi:1.9.2
打包好的镜像,我已经push到docker hub了,想用各位朋友可以直接pull下来
docker pull xieshujian/yapi:1.9.2