在docker中共享proto文件?

时间:2018-02-14 16:02:01

标签: docker-compose protocol-buffers grpc project-layout

我想知道人们如何倾向于在docker composites中的客户端和服务器之间共享proto文件?我正在测试gRPC以获得乐趣并创建了一个具有以下布局的项目:

docker-compose.yml
front/Dockerfile
      ...
back/Dockerfile
     proto/
     ...

此处frontback服务器的gRPC客户端。现在back/proto包含生成客户端存根所需的protobuf文件。这里的问题是这不在front的上下文之内。使用这些的人是否有任何最佳实践可以分享处理这个?

1 个答案:

答案 0 :(得分:0)

我为您提供两种选择:

Docker多阶段构建

您可以使用docker multi-stage build。首先生成后泊坞窗容器,然后使用多阶段构建将.proto容器中的back文件拉到front容器中。

front容器Dockerfile可能类似于:

FROM back AS builder

FROM alpine:latest  
COPY --from=builder proto/ proto/
...other commands...

扩展的构建上下文

另一种选择是从以上目录发出docker build命令:

docker build -f back/Dockerfile .
docker build -f front/Dockerfile .

这将扩展构建上下文,使其同时包含frontback目录。这样,您就可以在back/proto/ Dockerfile中引用front