Я использую 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 выключу и создаю разные тома для каждого кэша и файлов конфигурации, есть ли способ сделать это с одним общим томом?