Можно ли использовать один том docker для сопоставления с двумя разными каталогами? - PullRequest
1 голос
/ 06 марта 2020

Я использую VS Code, Remote Development Containers и Docker для создания сред разработки в контейнерах. Все работает нормально, но я заметил, что при работе с различными проектами такие вещи, как yarn install, означают необходимость каждый раз загружать модули npm. Конечно, как только образ контейнера делает это, он сохраняется в кеше, в частности /usr/local/share/.cache/yarn/v6.

Когда я пытался смонтировать эту папку на хост-машине, yarn install начинал слишком часто отказывать, заявляя, что при загрузке пакета возникли проблемы из-за плохого сетевого соединения (соединение было просто отличным). Итак, я создал том вместо этого, и все работало просто отлично.

Проблема, с которой я сталкиваюсь, заключается в том, что я также хочу использовать другие папки в томе, чтобы несколько контейнеров использовали один и тот же кеш для таких вещей, как NuGet пакеты. Я надеялся, что мой том будет выглядеть так:

mysharedvolume/yarn => /usr/local/share/.cache/yarn/v6
mysharedvolume/nuget => /wherever/nuget/packages/are/cached
mysharedvolume/somefile.config => /wherever/somefile.config

Это не похоже на то, как работают тома в docker, все файлы перепутаны на root громкость (нет подкаталогов). Конечно, я не могу просто отобразить всю папку / usr или что-то в этом роде, это безумие.

Прежде чем я go выключу и создаю разные тома для каждого кэша и файлов конфигурации, есть ли способ сделать это с одним общим томом?

...