本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

jaegertracing/protobuf-builder 是 Jaeger 项目官方提供的 Protobuf 构建工具镜像,集成了 Protobuf 编译器(protoc)、语言特定代码生成器(如 protoc-gen-go)及 Jaeger 项目专用的 Protobuf 定义文件(如 jaeger_idl)。该镜像旨在简化 Jaeger 项目及兼容项目中 Protobuf 文件的编译流程,确保构建环境一致性。
protoc 编译器,支持将 .proto 文件编译为多种编程语言代码(Go、Java、Python 等)。protoc-gen-go、protoc-gen-grpc-java 等),支持一键生成 gRPC 服务代码。.proto 文件与 Jaeger 标准定义的兼容性。.proto 文件(或依赖 Jaeger 预装定义)。从 Docker Hub 拉取最新版本镜像:
docker pull jaegertracing/protobuf-builder:latest
指定版本(如 1.55.0,对应 Protobuf 编译器版本):
docker pull jaegertracing/protobuf-builder:1.55.0
将本地目录(含 .proto 文件)挂载到容器,执行编译命令。示例:生成 Go 代码至本地 ./gen/go 目录:
docker run --rm -v $(pwd):/workspace jaegertracing/protobuf-builder \ protoc \ --proto_path=/workspace \ # 指定 .proto 文件目录(本地挂载目录) --proto_path=/usr/local/jaeger-idl \ # Jaeger 预装 Protobuf 定义路径 --go_out=/workspace/gen/go \ # 输出 Go 代码至本地 ./gen/go --go_opt=paths=source_relative \ # Go 代码生成选项(相对路径) /workspace/path/to/your/file.proto # 待编译的 .proto 文件路径
直接引用容器内预装的 Jaeger Protobuf 文件(如 jaeger_api_v2.proto)进行编译:
docker run --rm -v $(pwd):/workspace jaegertracing/protobuf-builder \ protoc \ --proto_path=/usr/local/jaeger-idl \ # Jaeger 定义路径 --go_out=/workspace/gen/go \ /usr/local/jaeger-idl/jaeger/api/v2/jaeger_api_v2.proto # 编译 Jaeger 官方 .proto 文件
镜像支持通过环境变量自定义编译行为,常用变量如下:
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
PROTOBUF_VERSION | Protobuf 编译器版本(用于验证或覆盖内置版本) | 3.25.3 |
JAEGER_PROTOBUF_DIR | 容器内 Jaeger Protobuf 定义文件的根目录 | /usr/local/jaeger-idl |
PROTOC_GEN_GO_VERSION | Go 代码生成器(protoc-gen-go)版本 | 1.28.1 |
OUTPUT_LANG | 默认输出语言(可选:go、java、python),简化命令行参数 | go |
通过 docker-compose.yml 定义构建任务,适用于多文件批量编译场景:
version: '3.8' services: protobuf-builder: image: jaegertracing/protobuf-builder:latest volumes: - ./proto:/workspace/proto # 本地 Protobuf 文件目录 - ./gen:/workspace/gen # 输出代码目录(本地挂载) environment: - JAEGER_PROTOBUF_DIR=/usr/local/jaeger-idl - OUTPUT_LANG=go command: > protoc --proto_path=/workspace/proto --proto_path=${JAEGER_PROTOBUF_DIR} --go_out=/workspace/gen --go_opt=paths=source_relative /workspace/proto/*.proto
启动命令:
docker-compose up
root)可能生成 root 权限文件,建议通过 --user $(id -u):$(id -g) 调整权限:
docker run --rm -v $(pwd):/workspace --user $(id -u):$(id -g) jaegertracing/protobuf-builder ...
3.25.3)。-v /path/to/local/plugin:/usr/local/bin/ 挂载至容器 $PATH 目录。免费版仅支持 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