@@ -65,32 +65,32 @@ To apply the metadata together with a user's devcontainer.json at runtime, the f
6565
6666|  Property |  Type/Format |  Merge Logic |  devcontainer.json |  devcontainer-feature.json | 
6767|  -------- |  ----------- |  ----------- |  :---------------: |  :--------------: | 
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. |  ✓  |    | 
9494{: .table .table-bordered .table-responsive}
9595
9696Variables 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