如何在Docker和Google Cloud Builds中使用gRPC Python插件?

  • 生成API描述符文件时,运行Linux gRPC插件最快/最轻的Linux Docker映像是什么?

  • 前面提到的API描述符是否应该成为Cloud Build工件并保存到Cloud Storage Bucket?

    • ...以便用于gcloud将API部署到Cloud Endpoints。

细节

我在Google Compute Engine上运行的Docker容器中运行Python gRPC服务和ESP 。关于gRPC> API管理显示了我的应用程序体系结构图:

http://img1.mukewang.com/60acab8c00014b5606420357.jpg

我的高级构建步骤:


1)创建描述符文件,api_descriptor.pb使用protoc协议缓冲器编译器。


python -m grpc_tools.protoc \

    --include_imports \

    --include_source_info \

    --proto_path=. \

    --descriptor_set_out=api_descriptor.pb \

    --python_out=generated_pb2 \

    --grpc_python_out=generated_pb2 \

    bookstore.proto

2) 使用gcloud命令行工具部署原型描述符文件(api_descriptor.pb)和配置文件:


gcloud endpoints services deploy api_descriptor.pb api_config.yaml

3) 使用Python插件生成gRPC代码:


python -m grpc_tools.protoc -I../../protos --python_out=. --grpc_python_out=. ../../protos/helloworld.proto

4)构建最终的Docker映像以部署在Google Compute Engine上。生成的Docker映像应包括:


从第3步生成的gRPC代码。

gRPC服务器需要的任何其他Python软件包。

步骤4)使用以下Dockerfile构建“ gRPC服务器”(附图中最右边的蓝色框):


FROM gcr.io/google_appengine/python:latest


WORKDIR .

EXPOSE 8081

ENTRYPOINT ["python", "server.py"]


ADD requirements.txt .

ADD protos ./protos


RUN mkdir out


RUN apt-get update && \

    apt-get install -y python2.7 python-pip && \

    pip install -r requirements.txt



RUN python \

    -m grpc_tools.protoc \

    --python_out=out \

    --grpc_python_out=out \

    --proto_path=. \

    bookstore.proto

我正在将这些构建步骤迁移到Google的Cloud Build。


AFAICT我的高级构建步骤应映射到Cloud Builder官方构建器映像。


1) ???


2)使用cloud-builders / gcloud /运行gcloud命令。


3) ???


4)使用cloud-builders / docker构建'gRPC Server'Docker映像。


步骤2)和3)已提供可用的云构建器(请参阅GoogleCloudPlatform / cloud-builders)。


但是,我不确定如何将步骤1)和3)迁移到Cloud Build。这两个步骤都需要运行一个Python插件,该插件在基本Linux Docker映像中不可用。


AFAICT步骤1)应生成一个Cloud Build构件,api_descriptor.pb并保存到Cloud Storage Bucket。


生成API描述符文件时,运行Linux gRPC插件最快/最轻的Linux Docker映像是什么?

前面提到的API描述符是否应该成为Cloud Build工件并保存到Cloud Storage Bucket?

...以便用于gcloud将API部署到Cloud Endpoints。


慕码人8056858
浏览 138回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python