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

 

posted @ 2021-02-09 12:21  lost in java  阅读(173)  评论(0编辑  收藏  举报