背景:
grpc协议需要用到protobuf,和微服务开发人员约定好proto之后,需要自行编译,但是又不想装那么多扩展啊插件啊,可以装但是没必要,因为能用docker搞的尽量用docker搞,毕竟用完即走多爽。
文件目录:
myItem
- protos
- demo.proto
- php
demo.proto文件内容参考
syntax = "proto3";
package protobuf;
service Demo {
rpc Multi (MultiRequest) returns (MultiReply) {}
}
message MultiRequest {
int64 args1 = 1;
int64 args2 = 2;
}
message MultiReply {
int64 result = 1;
string address = 2;
}
先拉取镜像
(当然不拉也没关系,执行下一步的命令也会自动拉的)
docker pull znly/protoc
编译PHP文件出来:
docker run --rm -v $(PWD):$(PWD) -w $(PWD) znly/protoc -Iprotos --php_out=./php ./protos/*.proto
也可以引用插件编译等功能,具体的可以查看该镜像帮助
docker run --rm znly/protoc --help
正确编译完成之后的目录结构
php目录下面多了两个文件夹
myItem
- protos
-demo.proto
- php
- GPBMetadata
- ...
- Protobuf
- ...
网友评论