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 b6b2a9a
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions libimage/push.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
dockerDaemonTransport "github.com/containers/image/v5/docker/daemon"
"github.com/containers/image/v5/docker/reference"
"github.com/containers/image/v5/manifest"
compressiontypes "github.com/containers/image/v5/pkg/compression/types"
"github.com/containers/image/v5/transports/alltransports"
"github.com/sirupsen/logrus"
)
Expand Down Expand Up @@ -86,8 +87,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() != compressiontypes.GzipAlgorithmName &&
(destRef.Transport().Name() == dockerArchiveTransport.Transport.Name() ||
destRef.Transport().Name() == dockerDaemonTransport.Transport.Name() ||
options.ManifestMIMEType == manifest.DockerV2Schema2MediaType) {
Expand Down

0 comments on commit b6b2a9a

Please sign in to comment.