@@ -65,32 +65,32 @@ To apply the metadata together with a user's devcontainer.json at runtime, the f
65
65
66
66
| Property | Type/Format | Merge Logic | devcontainer.json | devcontainer-feature.json |
67
67
| -------- | ----------- | ----------- | :---------------: | :--------------: |
68
- | ` id ` | E.g., ` ghcr.io/devcontainers/features/node:1 ` | Not merged. | | x |
69
- | ` init ` | ` boolean ` | ` true ` if at least one is ` true ` , ` false ` otherwise. | x | x |
70
- | ` privileged ` | ` boolean ` | ` true ` if at least one is ` true ` , ` false ` otherwise. | x | x |
71
- | ` capAdd ` | ` string[] ` | Union of all ` capAdd ` arrays without duplicates. | x | x |
72
- | ` securityOpt ` | ` string[] ` | Union of all ` securityOpt ` arrays without duplicates. | x | x |
73
- | ` entrypoint ` | ` string ` | Collected list of all entrypoints. | | x |
74
- | ` mounts ` | ` (string \| { type, src, dst })[] ` | Collected list of all mountpoints. Conflicts: Last source wins. | x | x |
75
- | ` onCreateCommand ` | ` string \| string[] \| {[key: string]: string \| string[]} ` | Collected list of all onCreateCommands. | x | x |
76
- | ` updateContentCommand ` | ` string \| string[] \| {[key: string]: string \| string[]} ` | Collected list of all updateContentCommands. | x | x |
77
- | ` postCreateCommand ` | ` string \| string[] \| {[key: string]: string \| string[]} ` | Collected list of all postCreateCommands. | x | x |
78
- | ` postStartCommand ` | ` string \| string[] \| {[key: string]: string \| string[]} ` | Collected list of all postStartCommands. | x | x |
79
- | ` postAttachCommand ` | ` string \| string[] \| {[key: string]: string \| string[]} ` | Collected list of all postAttachCommands. | x | x |
80
- | ` waitFor ` | enum | Last value wins. | x | |
81
- | ` customizations ` | Object of tool-specific customizations. | Merging is left to the tools. | x | x |
82
- | ` containerUser ` | ` string ` | Last value wins. | x | |
83
- | ` remoteUser ` | ` string ` | Last value wins. | x | |
84
- | ` userEnvProbe ` | ` string ` (enum) | Last value wins. | x | |
85
- | ` remoteEnv ` | Object of strings. | Per variable, last value wins. | x | |
86
- | ` containerEnv ` | Object of strings. | Per variable, last value wins. | x | |
87
- | ` overrideCommand ` | ` boolean ` | Last value wins. | x | |
88
- | ` portsAttributes ` | Map of ports to attributes. | Per port (not per port attribute), last value wins. | x | |
89
- | ` otherPortsAttributes ` | Port attributes. | Last value wins (not per port attribute). | x | |
90
- | ` forwardPorts ` | ` (number \| string)[] ` | Union of all ports without duplicates. Last one wins (when mapping changes). | x | |
91
- | ` shutdownAction ` | ` string ` (enum) | Last value wins. | x | |
92
- | ` updateRemoteUserUID ` | ` boolean ` | Last value wins. | x | |
93
- | ` hostRequirements ` | ` cpus ` , ` memory ` , ` storage ` , ` gpu ` | Max value wins. | x | |
68
+ | ` id ` | E.g., ` ghcr.io/devcontainers/features/node:1 ` | Not merged. | | ✓ |
69
+ | ` init ` | ` boolean ` | ` true ` if at least one is ` true ` , ` false ` otherwise. | ✓ | ✓ |
70
+ | ` privileged ` | ` boolean ` | ` true ` if at least one is ` true ` , ` false ` otherwise. | ✓ | ✓ |
71
+ | ` capAdd ` | ` string[] ` | Union of all ` capAdd ` arrays without duplicates. | ✓ | ✓ |
72
+ | ` securityOpt ` | ` string[] ` | Union of all ` securityOpt ` arrays without duplicates. | ✓ | ✓ |
73
+ | ` entrypoint ` | ` string ` | Collected list of all entrypoints. | | ✓ |
74
+ | ` mounts ` | ` (string \| { type, src, dst })[] ` | Collected list of all mountpoints. Conflicts: Last source wins. | ✓ | ✓ |
75
+ | ` onCreateCommand ` | ` string \| string[] \| {[key: string]: string \| string[]} ` | Collected list of all onCreateCommands. | ✓ | ✓ |
76
+ | ` updateContentCommand ` | ` string \| string[] \| {[key: string]: string \| string[]} ` | Collected list of all updateContentCommands. | ✓ | ✓ |
77
+ | ` postCreateCommand ` | ` string \| string[] \| {[key: string]: string \| string[]} ` | Collected list of all postCreateCommands. | ✓ | ✓ |
78
+ | ` postStartCommand ` | ` string \| string[] \| {[key: string]: string \| string[]} ` | Collected list of all postStartCommands. | ✓ | ✓ |
79
+ | ` postAttachCommand ` | ` string \| string[] \| {[key: string]: string \| string[]} ` | Collected list of all postAttachCommands. | ✓ | ✓ |
80
+ | ` waitFor ` | enum | Last value wins. | ✓ | |
81
+ | ` customizations ` | Object of tool-specific customizations. | Merging is left to the tools. | ✓ | ✓ |
82
+ | ` containerUser ` | ` string ` | Last value wins. | ✓ | |
83
+ | ` remoteUser ` | ` string ` | Last value wins. | ✓ | |
84
+ | ` userEnvProbe ` | ` string ` (enum) | Last value wins. | ✓ | |
85
+ | ` remoteEnv ` | Object of strings. | Per variable, last value wins. | ✓ | |
86
+ | ` containerEnv ` | Object of strings. | Per variable, last value wins. | ✓ | |
87
+ | ` overrideCommand ` | ` boolean ` | Last value wins. | ✓ | |
88
+ | ` portsAttributes ` | Map of ports to attributes. | Per port (not per port attribute), last value wins. | ✓ | |
89
+ | ` otherPortsAttributes ` | Port attributes. | Last value wins (not per port attribute). | ✓ | |
90
+ | ` forwardPorts ` | ` (number \| string)[] ` | Union of all ports without duplicates. Last one wins (when mapping changes). | ✓ | |
91
+ | ` shutdownAction ` | ` string ` (enum) | Last value wins. | ✓ | |
92
+ | ` updateRemoteUserUID ` | ` boolean ` | Last value wins. | ✓ | |
93
+ | ` hostRequirements ` | ` cpus ` , ` memory ` , ` storage ` , ` gpu ` | Max value wins. | ✓ | |
94
94
{: .table .table-bordered .table-responsive}
95
95
96
96
Variables in string values will be substituted at the time the value is applied. When the order matters, the devcontainer.json is considered last.
0 commit comments