Skip to content

Commit

Permalink
Only reset compression if its not valid
Browse files Browse the repository at this point in the history
If we reset the default compression method, force compression no longer works.

Signed-off-by: James Hewitt <[email protected]>
  • Loading branch information
Jamstah committed Nov 29, 2024
1 parent 17ff15c commit ff282b1
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions libimage/push.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,16 @@ func (r *Runtime) Push(ctx context.Context, source, destination string, options
destRef = dockerRef
}

// docker-archive and only DockerV2Schema2MediaType support Gzip compression
if options.CompressionFormat != nil &&
// docker-archive and DockerV2Schema2MediaType support only Gzip compression
// If the CompressionFormat has come from containers.conf (set as a default),
// but isn't supported for this push, we want to ignore it.
// If the CompressionFormat has come from the CLI (ForceCompressionFormat
// requires CompressionFormat to be set), we want to strip the invalid value
// so that the push attempt fails.
//
// Ideally this should all happen at a much higher layer, where the code can differentiate
// between a value coming from containers.conf vs. the CLI.
if options.CompressionFormat != nil && options.CompressionFormat.Name() != "gzip" &&
(destRef.Transport().Name() == dockerArchiveTransport.Transport.Name() ||
destRef.Transport().Name() == dockerDaemonTransport.Transport.Name() ||
options.ManifestMIMEType == manifest.DockerV2Schema2MediaType) {
Expand Down

0 comments on commit ff282b1

Please sign in to comment.