我想知道人们如何倾向于在docker composites中的客户端和服务器之间共享proto文件?我正在测试gRPC以获得乐趣并创建了一个具有以下布局的项目:
docker-compose.yml
front/Dockerfile
...
back/Dockerfile
proto/
...
此处front
是back
服务器的gRPC客户端。现在back/proto
包含生成客户端存根所需的protobuf文件。这里的问题是这不在front
的上下文之内。使用这些的人是否有任何最佳实践可以分享处理这个?
答案 0 :(得分:0)
我为您提供两种选择:
您可以使用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 .
这将扩展构建上下文,使其同时包含front
和back
目录。这样,您就可以在back/proto/
Dockerfile中引用front
。