Разделяете прото файлы в докере?

Мне было интересно, как люди, как правило, обмениваются прототипами между клиентами и серверами в Docker-композитах? Я тестирую gRPC для развлечения и создал проект со следующим макетом:

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

Вот front клиент gRPC для back сервер. Сейчас back/proto содержит файлы protobuf, которые мне нужны для создания заглушки клиента. Проблема в том, что это вне контекста front, У кого-нибудь, кто использует их, есть какие-нибудь лучшие методы, чтобы поделиться этим?

0 ответов

У меня есть два варианта для вас:

Docker Multistage Build

Вы можете использовать многоэтапную сборку Docker. Сначала создайте контейнер задней док-станции, а затем используйте многоэтапную сборку, чтобы .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/ в вашем front Dockerfile.

Другие вопросы по тегам