0%

proto gen grpc php7 가이드

서론

  • php7.0 에서 사용할 proto grpc stub 이 필요하였습니다.
  • https://grpc.io/docs/quickstart/php/ 을 참고하여 진행해보았으나, 과정이 많고 실패케이스도 많아서 쉽지 않았습니다.
    추후 php 용 grpc stub 을 만들때마다 이 과정을 반복해야하는 끔찍함이 싫었습니다.
  • 따라서 도커 이미지를 만들었고 .proto 를 grpc 용 stub 으로 쉽게 생성할수 있게 제공하려 합니다.

docker image

https://hub.docker.com/r/lejewk/proto-gen-grpc-php7.0.12

실행 방법

  1. .proto 파일 작성
  2. docker 실행시 .proto 파일 경로 마운트
  3. 아래 제공되는 커맨드를 통해 stub 파일 생성
1
2
3
4
5
6
7
8
9
10
# 이미지 실행
docker run -it --rm -v ${local directory}:/proto \
lejewk/proto-gen-grpc-php7.0.12 bash

# stub 파일 생성
protoc --proto_path=/proto \
--php_out=/proto \
--grpc_out=/proto \
--plugin=protoc-gen-grpc=/grpc/bins/opt/grpc_php_plugin \
${proto_filename}

예시

1
2
3
4
5
6
7
8
9
10
11
# 동일 경로의 proto 디렉토리 마운트
# proto 디렉토리 내에는 helloworld.proto 파일이 존재합니다.
docker run -it --rm -v "$(pwd -W)"/proto:/proto \
lejewk/proto-gen-grpc-php7.0.12 bash

# 컨테이너 내부에서 아래 커맨드를 통해 stub 파일 생성
protoc --proto_path=/proto \
--php_out=/proto \
--grpc_out=/proto \
--plugin=protoc-gen-grpc=/grpc/bins/opt/grpc_php_plugin \
/proto/helloworld.proto