Edv*_*olm 5 protocol-buffers project-layout grpc docker-compose
我想知道人们如何倾向于在 docker 组合中的客户端和服务器之间共享 proto 文件?我正在测试 gRPC 的乐趣,并创建了一个具有以下布局的项目:
docker-compose.yml
front/Dockerfile
...
back/Dockerfile
proto/
...
Run Code Online (Sandbox Code Playgroud)
这front是back服务器的 gRPC 客户端。现在back/proto包含生成客户端存根所需的 protobuf 文件。这里的问题是这超出了front. 使用这些的任何人都有任何最佳实践可以分享来处理这个问题?
我有两个选择给你:
您可以使用docker multi-stage build。先生成后台docker容器,然后使用多阶段构建将文件.proto从back容器中拉取到容器中front。
容器frontDockerfile 可能类似于:
FROM back AS builder
FROM alpine:latest
COPY --from=builder proto/ proto/
...other commands...
Run Code Online (Sandbox Code Playgroud)
另一种选择是docker build从上面的目录发出命令:
docker build -f back/Dockerfile .
docker build -f front/Dockerfile .
Run Code Online (Sandbox Code Playgroud)
这将扩展构建上下文以包括front和back目录。这样你就可以back/proto/在 Dockerfile 中引用front。
| 归档时间: |
|
| 查看次数: |
683 次 |
| 最近记录: |