vscode-remote 中的多个开发容器

Bid*_*ski 10 vscode-remote

我有一个创建多个 Docker 映像的项目。我想在 vscode-remote 中为每个图像设置一个 devcontainer,以便我可以为每个图像启动一个容器。

我一次只需要启动并连接到一个容器/图像。

是否支持拥有多个 devcontainer 文件?也许像.devcontainer/devcontainer1.json.devcontainer/devcontainer2.json(假设我只有两个想要使用的图像)?

每个 devcontainer 将使用不同名称的图像,并且还需要不同的runArgs.

tho*_*iel 10

我发现其他答案太麻烦了,因为它们只适用于F1 -> Dev Containers: Open Folder in Container并发现(使用 VS Code v1.77)如果将devcontainer.json文件放在 .devcontainer 的子文件夹中,它甚至可以使用F1 -> 开发容器:在容器中重新打开,立即为您提供所有服务的选择,而无需深入了解文件夹结构。

屏幕截图 VS Code devcontainer 选择


Seb*_*tze 6

刚刚在这里找到了这个。我检查了文档,因为我也对此感兴趣。并且文档说明了以下内容

在某些情况下,单个容器环境是不够的。幸运的是,Remote - Containers 支持 Docker Compose 管理的多容器配置。

您可以:

  1. 使用在现有的、未修改的 docker-compose.yml 中定义的服务。
  2. 创建用于开发服务的新 docker-compose.yml(或制作现有副本)。
  3. 扩展您现有的 Docker Compose 配置以开发服务。
  4. 使用单独的 VS Code 窗口同时处理多个 Docker Compose 定义的服务。

https://code.visualstudio.com/docs/remote/containers#_using-docker-compose

也许你想检查一下。

您的用例的文档可以在以下页面下找到:

https://code.visualstudio.com/docs/remote/containers-advanced#_connecting-to-multiple-containers-at-once

您可以使用 docker-compose.yml 执行此操作,并且需要具有如下所示的文件夹结构:

在此处输入图片说明

  • 这是否允许您将“project-root”作为所有容器中的源文件夹,或者每个容器仅限于其各自的文件夹? (2认同)
  • 我目前正在努力。我当前的状态是,VS Code 窗口在子文件夹中打开,但我将其映射到工作区,我可以手动打开整个项目根目录的 VSCode。一旦我得到一些基本的工作,我将用我的 docker-compose 和 devcontainer.json 更新我的答案。仅供参考:同时使用基于 Windows 和 Unix 的映像有点问题 (2认同)