docker + centos7 搭建.proto文件转json文件

docker的安装

https://www.docker.com/get-started

docker安装centos7镜像

docker pull centos:7
docker run -d -t -i -p 8080:80 --name=centos_protoc  centos:7

#查看centos_protoc容器ID,并进入容器
docker  ps
docker exec -it <container_id> bash

### protoc 版本3+ 的安装
wget https://github.com/google/protobuf/releases/download/v3.6.1/protobuf-all-3.6.1.tar.gz
tar zxvf protobuf-all-3.6.1.tar.gz

yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++

./autogen.sh
./configure
make
make install

centos7 golang版本的安装

// 下载解压
wget https://dl.google.com/go/go1.13.linux-amd64.tar.gz
tar -C /usr/local -vxzf go1.13.linux-amd64.tar.gz
// 配置环境变量
vi ~/.bash_profile
export PATH=$PATH:/usr/local/go/bin
source ~/.bash_profile
go version
// 设置代理
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct



go 安装protoc-gen-doc

go get -u github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc

// 下载目录为/root/go/src/github.com/pseudomuto/protoc-gen-doc
进入 cmd下的 protoc-gen-doc 文件夹 执行 `go build -o protoc-gen-doc -a ` 生成protoc-gen-doc文件

vi ~/.bash_profile
export PATH=$PATH:/usr/local/go/bin:/usr/bin/protoc-gen-doc

source ~/.bash_profile


测试

新建 map.proto

syntax = "proto3";

package xd.tds.gameConsole;

service Map {
     
  rpc getMapDetail(GetMapDetailRequest) returns(GetMapDetailResponse) {
     
  }
}

message GetMapDetailRequest {
     
  string name = 1;
}

message GetMapDetailResponse {
     
  int32 code = 1;
  string msg = 2;
  repeated MapData data = 3;
}

message MapData {
     
  int32 id = 1;
  string label = 2;
}

执行命令:

protoc --doc_out=json,yzt_proto.json:./output/ ./*.proto

可以在output中查看生成的文件(docker cp id:容器内的地址 宿主机地址)

docker cp 74188c0250b6:output ./

你可能感兴趣的:(.proto文件转json,docker,linux,protobuf)