Skip to content

Commit 59780aa

Browse files
kevparjterry75
authored andcommitted
Add ArgsEscaped field to image config
This change officially adds ArgsEscaped to the image config. This field has already been used by Docker for several years, so adding it here allows images that depend on its behavior to work with other runtimes. Signed-off-by: Kevin Parsons <[email protected]> Signed-off-by: Justin Terry <[email protected]>
1 parent 52a3f77 commit 59780aa

File tree

4 files changed

+21
-0
lines changed

4 files changed

+21
-0
lines changed

config.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,13 @@ Note: Any OPTIONAL field MAY also be set to null, which is equivalent to being a
183183

184184
The field contains the system call signal that will be sent to the container to exit. The signal can be a signal name in the format `SIGNAME`, for instance `SIGKILL` or `SIGRTMIN+3`.
185185

186+
- **ArgsEscaped** *boolean*, OPTIONAL
187+
188+
`[Deprecated]` - This field is present only for legacy compatibility with Docker and should not be used by new image builders.
189+
It is used by Docker for Windows images to indicate that the `Entrypoint` or `Cmd` or both, contains only a single element array, that is a pre-escaped, and combined into a single string `CommandLine`.
190+
If `true` the value in `Entrypoint` or `Cmd` should be used as-is to avoid double escaping.
191+
Note, the exact behavior of `ArgsEscaped` is complex and subject to implementation details in Moby project.
192+
186193
- **Memory** *integer*, OPTIONAL
187194

188195
This property is *reserved* for use, to [maintain compatibility](media-types.md#compatibility-matrix).

media-types.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ This section shows where the OCI Image Specification is compatible with formats
6969
- `.config.MemorySwap`: only present in Docker, and reserved in OCI
7070
- `.config.CpuShares`: only present in Docker, and reserved in OCI
7171
- `.config.Healthcheck`: only present in Docker, and reserved in OCI
72+
- [Moby/Docker](https://github.com/moby/moby)
73+
- `.config.ArgsEscaped`: Windows-specific Moby/Docker extension, deprecated in OCI, available for compatibility with older images.
7274

7375
`.config.StopSignal` and `.config.Labels` are accidentally undocumented in Docker Image Spec v1.2, but these fields are not OCI-specific concepts.
7476

schema/config-schema.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@
9595
},
9696
"StopSignal": {
9797
"type": "string"
98+
},
99+
"ArgsEscaped": {
100+
"type": "boolean"
98101
}
99102
}
100103
},

specs-go/v1/config.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,15 @@ type ImageConfig struct {
4848

4949
// StopSignal contains the system call signal that will be sent to the container to exit.
5050
StopSignal string `json:"StopSignal,omitempty"`
51+
52+
// ArgsEscaped `[Deprecated]` - This field is present only for legacy
53+
// compatibility with Docker and should not be used by new image builders.
54+
// It is used by Docker for Windows images to indicate that the `Entrypoint`
55+
// or `Cmd` or both, contains only a single element array, that is a
56+
// pre-escaped, and combined into a single string `CommandLine`. If `true`
57+
// the value in `Entrypoint` or `Cmd` should be used as-is to avoid double
58+
// escaping.
59+
ArgsEscaped bool `json:"ArgsEscaped,omitempty"`
5160
}
5261

5362
// RootFS describes a layer content addresses

0 commit comments

Comments
 (0)