Skip to content

Commit 666827d

Browse files
committed
marshal: correctly handle empty shell commands
It's possible to override an image's entrypoint for service container's by setting `service.entrypoint`. (Same applies for image's command.) In some circumstances, it's desirable to explicitly "clear" these out from the image. However, currently, if you do specify `entrypoint: ''` or `entrypoint: []`, when the config is marshaled, that gets lost because of Go default value handling. Handling this varies slightly between YAML + JSON: * YAML: implement `IsZeroer` interface to specify that only `nil` slices should be omittable & `MarshalYAML` to ensure that `nil` slices marshal as `null` rather than `[]` * JSON: do NOT use `omitempty`, meaning that the result will _always_ be present in the marshaled output, unfortunately, but it will be correct! This preserves compatibility and "pretty" serialization for YAML at the expense of some slightly subtle marshalling semantics. Signed-off-by: Milas Bowman <[email protected]>
1 parent c5ea95b commit 666827d

File tree

2 files changed

+200
-85
lines changed

2 files changed

+200
-85
lines changed

0 commit comments

Comments
 (0)