Introduction

掲題の通り。
ワークスペース内の複数の .devcontainer.json はサポートされているが、その階層には上限があるということ。

What does it mean?

Visual Studio Code 1.124.2 (2026/06/12) での話。

下記のような構造があるとする。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
</path/to/workspace>
├─.devcontainer
│ ├─docker-compose
│ │ │ .env
│ │ │ compose.yml
│ │ │ devcontainer.json
│ │ │
│ │ └─app
│ │ Dockerfile
│ │ main.py
│ │ requirements.txt
│ │
│ ├─nested
│ │ ├─docker-build
│ │ │ devcontainer.json
│ │ │ Dockerfile
│ │ │
│ │ └─docker-outside-of-docker
│ │ devcontainer.json
│ │ Dockerfile
│ │
│ └─original
│ devcontainer-lock.json
│ devcontainer.json

└─.git

この時、Visual Studio Code のコマンドパレット (Ctrl + Shift + P) の Dev Containers: Rebuild and Reopen in ContainerDev Containers: Reopen in Container から認識されるのは、

  • .devcontainer/docker-compose/devcontainer.json
  • .devcontainer/original/devcontainer.json

のみだという話。

DevContainer

ネストされた構造をフラットにするだけで、下記のように認識される。

DevContainer

.devcontainer 直下にある .devcontainer.json も対象になる。

まとめ

結論は下記の構造のみが許容されるということ。

  • .devcontainer/devcontainer.json
  • .devcontainer/*/devcontainer.json

ネストされた構造をサポートしてもらいたい。