本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
GripMock 是一个 gRPC 服务的 mock 服务器,通过 .proto 文件或编译后的 .pb 描述符生成 gRPC 服务实现。您可以使用它搭建端到端测试环境,或在软件开发阶段作为虚拟服务器使用。服务器使用 Go 语言实现,客户端可支持任何编程语言的 gRPC 客户端。
本项目是 tokopedia/gripmock 的分支版本,具有更优的性能和更多增强功能,包括更新依赖、支持 YAML 静态存根、健康检查端点等。
.proto 文件、包含多个 .proto 文件的文件夹或编译后的 .pb 描述符启动服务/api/health/liveness 和 /api/health/readiness 端点equals(精确匹配)、contains(包含匹配)、matches(正则匹配),支持嵌套字段和 ignoreArrayOrder(忽略数组顺序).pb 描述符以加快启动速度docker pull bavix/gripmock
Homebrew(macOS/Linux):
brew tap bavix/homebrew-gripmock brew install gripmock
预编译二进制:从 Releases 下载对应平台的二进制文件并添加到 PATH
Go 直接安装:
go install github.com/bavix/gripmock/v3@latest
对于复杂项目,推荐编译 .pb 描述符以加快启动速度:
protoc:protoc --proto_path=. --descriptor_set_out=service.pb --include_imports hello.proto
buf:buf build -o service.pb
# 通过 .pb 文件启动 gripmock service.pb # 通过 .proto 文件启动 gripmock service.proto # 通过包含 .proto 文件的文件夹启动 gripmock protofolder/
指定包含静态存根文件的文件夹:
# 文件夹中的 proto 文件 gripmock --stub stubfolder/ protofolder/ # 单个 proto 文件 gripmock --stub stubfolder/ service.proto # 预编译 .pb 文件 gripmock --stub stubfolder/ service.pb
docker run -p 4770:4770 -p 4771:4771 \ -v /本地存根文件夹:/stubs \ -v /本地proto文件夹:/proto \ bavix/gripmock /proto/
docker run -p 4770:4770 -p 4771:4771 \ -v /本地存根文件夹:/stubs \ -v /本地proto文件夹:/proto \ bavix/gripmock /proto/service.proto
docker run -p 4770:4770 -p 4771:4771 \ -v /本地存根文件夹:/stubs \ -v /本地pb文件路径:/proto \ bavix/gripmock /proto/service.pb
端口说明:
- 4770:gRPC 服务端口(客户端连接)
- 4771:HTTP 管理端口(Web UI 和 REST API)
通过 HTTP 存根服务器(端口 4771)管理存根,支持以下接口:
GET /api/stubs:列出所有存根POST /api/stubs:添加新存根POST /api/stubs/search:搜索匹配的存根DELETE /api/stubs:清除所有存根{ "service": "Greeter", // proto 中定义的服务名 "method": "SayHello", // 要模拟的方法名 "headers": { // 可选,请求头匹配规则 "equals": { "authorization": "token" } }, "input": { // 输入匹配规则 "ignoreArrayOrder": true, // 可选,忽略数组顺序 "equals": { "name": "gripmock" } }, "output": { // 匹配成功的输出 "data": { "message": "Hello" }, // 响应数据 "headers": { "x-resp": "ok" }, // 可选,响应头 "error": "错误信息", // 可选,错误消息(指定则返回错误) "code": "2" // 可选,gRPC 错误码(非 0 则返回错误) } }
curl -X POST -H "Content-Type: application/json" -d '{ "service": "Greeter", "method": "SayHello", "input": { "equals": { "name": "gripmock" } }, "output": { "data": { "message": "Hello GripMock" } } }' http://localhost:4771/api/stubs
将存根文件(JSON/YAML 格式)放置在文件夹中,通过 --stub 参数指定:
# stub.yaml 示例 - service: Greeter method: SayHello input: equals: name: gripmock output: data: message: Hello GripMock
启动命令:
# 本地 gripmock --stub ./stubfolder ./service.proto # Docker docker run -p 4770:4770 -p 4771:4771 \ -v /本地存根文件夹:/stubs \ -v /本地proto文件夹:/proto \ bavix/gripmock --stub /stubs /proto/service.proto
支持三种匹配方式,可作用于嵌套字段和数组:
匹配输入中指定字段的精确值(默认检查数组顺序):
"input": { "equals": { "name": "gripmock", "greetings": { "english": "Hello" }, "numbers": [1, 2, 3], "active": true } }
匹配输入中包含指定字段及值:
"input": { "contains": { "user": { "id": "123" }, "tags": ["test"] } }
使用正则表达式匹配字符串字段:
"input": { "matches": { "email": "^[a-z]+@example\\.com$", "id": "^\\d{6}$" } }
配合 equals 使用,忽略数组元素顺序:
"input": { "ignoreArrayOrder": true, "equals": { "numbers": [3, 1, 2] } // 匹配 [1,2,3]、[2,1,3] 等 }
与输入匹配规则类似,支持 equals、contains、matches:
"headers": { "equals": { "authorization": "Bearer token" }, "contains": { "x-version": "v1" }, "matches": { "request-id": "^[a-f0-9-]+$" } }
本项目采用 MIT 许可证,详情参见 LICENSE。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429