Это может быть дубликатом, так как я предполагаю, что это обычный вариант использования для docker -compose. Тем не менее, я не могу найти похожий вопрос в этом конкретном c сценарии.
У меня есть docker -композитный файл со следующими двумя службами:
processService:
container_name: processservice
image: mcr.microsoft.com/dotnet/core/sdk:3.1
ports:
- 5001:80
volumes:
- ./backend/packages/dotnet:/backend/packages/dotnet
- ./backend/services/processService/src:/backend/services/processService/src
working_dir: /backend/services/processService/src/ProcessService.Application
command: dotnet watch run
organizationService:
container_name: organizationservice
image: mcr.microsoft.com/dotnet/core/sdk:3.1
ports:
- 5002:80
volumes:
- ./backend/packages/dotnet:/backend/packages/dotnet
- ./backend/services/organizationService/src:/backend/services/organizationService/src
working_dir: /backend/services/organizationService/src/OrganizationService.Application
command: dotnet watch run
Как в файле compose, я использую одинаковое монтирование тома для обеих служб, а именно: ./backend/packages/dotnet:/backend/packages/dotnet
.
. Я хочу знать, возможно ли объявить этот том один раз в разделе томов, и затем повторно используйте его в разных сервисах.
Я попытался найти ответ на этот вопрос. Ответы, с которыми я сталкиваюсь, предлагают создать том вручную с помощью docker volume create foo
, а затем использовать его следующим образом:
...
volumes:
- foo:/backend/packages/dotnet
...
Однако это не имеет смысла для меня, так как я не понимаю, как foo должен знать о каталоге, из которого я хочу, чтобы он читал / записывал, когда я не указал это в любой момент.
Я попытался прочитать документацию docker, но не могу найти ничего, связанного с созданием именованного тома, монтирующего каталог c.
Есть ли у кого-нибудь какие-либо предложения, как как выполнить sh это?