我正在使用 VS Code、远程开发容器和 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 中的工作方式,所有文件都混合在卷的根目录中(没有子目录)。当然,我不能简单地映射整个 /usr 文件夹或类似的东西,这太疯狂了。
在我开始为每个缓存和配置文件创建不同的卷之前,有没有办法使用单个共享卷来做到这一点?