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:development
的libprotoc
版本为: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