diff --git a/command/image/build.go b/command/image/build.go index 51d0ea9f08..2bd80f7082 100644 --- a/command/image/build.go +++ b/command/image/build.go @@ -56,6 +56,7 @@ type buildOptions struct { forceRm bool pull bool cacheFrom []string + compress bool } // NewBuildCommand creates a new `docker build` command @@ -100,6 +101,7 @@ func NewBuildCommand(dockerCli *command.DockerCli) *cobra.Command { flags.BoolVarP(&options.quiet, "quiet", "q", false, "Suppress the build output and print image ID on success") flags.BoolVar(&options.pull, "pull", false, "Always attempt to pull a newer version of the image") flags.StringSliceVar(&options.cacheFrom, "cache-from", []string{}, "Images to consider as cache sources") + flags.BoolVar(&options.compress, "compress", false, "Compress the build context using gzip") command.AddTrustedFlags(flags, true) @@ -208,8 +210,12 @@ func runBuild(dockerCli *command.DockerCli, options buildOptions) error { includes = append(includes, ".dockerignore", relDockerfile) } + compression := archive.Uncompressed + if options.compress { + compression = archive.Gzip + } buildCtx, err = archive.TarWithOptions(contextDir, &archive.TarOptions{ - Compression: archive.Uncompressed, + Compression: compression, ExcludePatterns: excludes, IncludeFiles: includes, })