Skip to content

Commit 3a7f492

Browse files
authored
Merge pull request #892 from jterry75/jterry75/argsescaped
Add ArgsEscaped field to image config
2 parents 52a3f77 + 59780aa commit 3a7f492

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)