vscode 在容器中重新打开后跳转到特定卷
vscode jumps to a specific volume afer reopen in container
我有一个带有 .devcontainer 配置的不错的项目。自从 vscode 更新到 1.63 后,我在 docker 设置方面遇到了一些问题。现在我使用的是最新的 1.64.0
我只想构建一个新的容器,并在一个全新的环境中启动一个干净的卷。
发生的事情是,一个新容器正在启动,我看到了另一个容器中的一些东西。
如果我将 git 存储库克隆到容器卷中,也是如此。
- 为什么有些容器连接到工作区的同一卷?
- 为什么我每次都回退到同一个音量?
在devcontainer.json我设置:
"workspaceFolder": "/workspace",
"workspaceMount": "source=remote-workspace,target=/workspace,type=volume",
要在全新环境中构建新的 devcontainer,您可以安装 devcotainer cli 并手动触发构建。
我习惯于将工作区挂载为绑定挂载(在 windows 上使用 wsl2 文件)而不是卷挂载,我认为主要问题是卷名:如果两个项目都有“source=remote-workspace" 音量将被检测为相同。
对于 nodejs,我想将 node_modules
文件夹保存在容器中,我在 official vscode guide for this usecase.
之后进行了双重安装
所以我将 workspaceMount 作为默认的绑定挂载,而不是添加一个覆盖特定文件夹的卷。
{
"mounts": [
// vvvvvvvvvvv name must be unique
"source=projectname-node_modules,target=${containerWorkspaceFolder}/node_modules,type=volume"
]
}
结果是:
- 每个文件
/
都是容器服务器
- 但是
${containerWorkspaceFolder}
里面的所有东西都由 bind mount 服务
- 但是
${containerWorkspaceFolder}/node_modules
里面的所有东西都是命名卷的服务器
我有一个带有 .devcontainer 配置的不错的项目。自从 vscode 更新到 1.63 后,我在 docker 设置方面遇到了一些问题。现在我使用的是最新的 1.64.0
我只想构建一个新的容器,并在一个全新的环境中启动一个干净的卷。
发生的事情是,一个新容器正在启动,我看到了另一个容器中的一些东西。 如果我将 git 存储库克隆到容器卷中,也是如此。
- 为什么有些容器连接到工作区的同一卷?
- 为什么我每次都回退到同一个音量?
在devcontainer.json我设置:
"workspaceFolder": "/workspace",
"workspaceMount": "source=remote-workspace,target=/workspace,type=volume",
要在全新环境中构建新的 devcontainer,您可以安装 devcotainer cli 并手动触发构建。
我习惯于将工作区挂载为绑定挂载(在 windows 上使用 wsl2 文件)而不是卷挂载,我认为主要问题是卷名:如果两个项目都有“source=remote-workspace" 音量将被检测为相同。
对于 nodejs,我想将 node_modules
文件夹保存在容器中,我在 official vscode guide for this usecase.
所以我将 workspaceMount 作为默认的绑定挂载,而不是添加一个覆盖特定文件夹的卷。
{
"mounts": [
// vvvvvvvvvvv name must be unique
"source=projectname-node_modules,target=${containerWorkspaceFolder}/node_modules,type=volume"
]
}
结果是:
- 每个文件
/
都是容器服务器 - 但是
${containerWorkspaceFolder}
里面的所有东西都由 bind mount 服务
- 但是
${containerWorkspaceFolder}/node_modules
里面的所有东西都是命名卷的服务器