使用docker快速编译proto文件

php使用protobuf、php编译proto文件、javascript编译proto文件、python编译proto文件、go编译proto文件

在使用protobuf格式来通讯,protobuf是一种与语言无关的二进制文件格式(参考json、yaml),当我们定义好 proto 文件后,需要使用 protoc 来生成与语言相关的类库。为了不在开发环境中安装编译各种扩展和库,我们可以使用 docker 方式来快速方便的生成所需文件,用完即走,干净方便快捷。

docker pull rvolosatovs/protoc

镜像介绍:rvolosatovs/protoc – Docker Image | Docker Hub

该镜像作者维护较为稳定,可用使用较新的 libprotoc 版本,用法和 znly/protoc 镜像用法一致

docker run --rm -v $(PWD):$(PWD) -w $(PWD) rvolosatovs/protoc -I./protos --php_out=./ProtobufLibs ./protos/*.proto

使用开发版rvolosatovs/protoc:developmentlibprotoc版本为:3.21.12

以下为原文:


该稳定版 libprotoc 3.4.0

docker pull znly/protoc

该镜像包含:

  • protobuf 3.6.0.1
  • gRPC 1.13.0
  • gRPC-Web 1.0.0
  • Google Well Known Types are automatically included (via google/)
  • Go related tools compiled with 1.8.1,

支持语言列表如下

  • C
  • C++
  • C#
  • Java / JavaNano (Android)
  • JavaScript
  • Objective-C
  • Python
  • Ruby
  • Go
  • Swift 4
  • Rust

使用

查看镜像提供的帮助

docker run --rm znly/protoc --help

挂载本地磁盘目录后执行

docker run --rm -v $(pwd):$(pwd) -w $(pwd) znly/protoc --python_out=. -I. myfile.proto

更多镜像介绍:znly/protoc – Docker Image | Docker Hub

Author: thinkwei

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注