使用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)
标签:
YApi
, docker-compose
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏