使用docker-compose部署YApi
最近由于工作需要,要私有化部署一个接口管理平台,作为原驼厂的一员,首先想到的就是YApi(https://github.com/YMFE/yapi),然而这个项目已经两年多没更新,网上有各种继续维护的分支,也没多少更新,基于docker-compose部署的方案维护也不活跃,要不就是走不通,要不就是YApi版本没更新到最新。
所以要想用最新版本的YApi只能自己造轮子了,下面是我的方案(macOS):
1、首先在github下载最新的1.12.0版本,解压到本地vendors目录(本地目录 yapi/vendors,yapi作为项目的基目录)
2、编写构建YApi镜像的Dockerfile(最高基于node12):
FROM --platform=${BUILDPLATFORM:-amd64} node:12-alpine3.14 AS builder
# 安装构建工具
RUN apk add --update --no-cache ca-certificates curl wget cmake build-base linux-headers bash python2 make g++ gcc libgcc openssl && update-ca-certificates
WORKDIR /yapi/vendors
# 可以直接git clone,我是下载解压到本地vendors的
COPY vendors /yapi/vendors
RUN npm install --production --registry https://registry.npmmirror.com
# 镜像
FROM node:12-alpine3.14
WORKDIR /yapi
COPY --from=builder /yapi .
EXPOSE 3000
3、准备docker-compose.yml(注意:第一次启动需要初始化YApi,所以docker-compose第一次启动和以后启动有区别,见备注)
services: yapi-mongo: container_name: yapi-mongo image: mongo:latest restart: unless-stopped environment: TZ: Asia/Shanghai MONGO_INITDB_ROOT_USERNAME: yapi MONGO_INITDB_ROOT_PASSWORD: 12345678 volumes: - ./data/db:/data/db ports: - 27017:27017 yapi-web: build: context: ./ dockerfile: Dockerfile image: yapi:1.12.0 container_name: yapi-web ports: - 3000:3000 volumes: - ./yapi/config.json:/yapi/config.json - ./yapi/log:/yapi/log depends_on: - yapi-mongo links: - yapi-mongo # 第一次运行,需要初始化 # command: sh -c "sleep 30 && node '/yapi/vendors/server/install.js' && node '/yapi/vendors/server/app.js'" # 再次运行,sleep 30秒是要等待mongo启动完成,不然yapi会连接不到mongo;或对mongo进行健康检测(healthcheck)替代sleep command: sh -c "sleep 30 && node '/yapi/vendors/server/app.js'" restart: unless-stopped
4、准备db目录和YApi的config文件(参考docker-compose中的volumes,自定义)
5、docker-compose up 或 docker-compose up -d (至于docker镜像源的问题,各项神通自己解决吧😂)
6、访问:http://127.0.0.1:3000,初始用户名和密码见(https://github.com/YMFE/yapi)里面的说明,或启动日志。
7、其他方案:1、Apifox(私有化需要钱😁,个人和小团队在线使用很方便)2、Hoppscotch 国外的一个项目,类似postman,也支持私有化部署(https://github.com/hoppscotch/hoppscotch,原名:postwoman)

浙公网安备 33010602011771号