Merge pull request #25837 from reaperhulk/support-compressing-build-context
Add support for compressing build context during image build
This commit is contained in:
commit
f08a450ad3
5 changed files with 15 additions and 2 deletions
|
@ -56,6 +56,7 @@ type buildOptions struct {
|
|||
forceRm bool
|
||||
pull bool
|
||||
cacheFrom []string
|
||||
compress bool
|
||||
}
|
||||
|
||||
// NewBuildCommand creates a new `docker build` command
|
||||
|
@ -101,6 +102,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)
|
||||
|
||||
|
@ -209,8 +211,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,
|
||||
})
|
||||
|
|
|
@ -758,6 +758,7 @@ _docker_build() {
|
|||
"
|
||||
|
||||
local boolean_options="
|
||||
--compress
|
||||
--disable-content-trust=false
|
||||
--force-rm
|
||||
--help
|
||||
|
@ -1301,7 +1302,7 @@ _docker_info() {
|
|||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
case "$cur" in
|
||||
-*)
|
||||
COMPREPLY=( $( compgen -W "--format -f --help" -- "$cur" ) )
|
||||
|
|
|
@ -1509,6 +1509,7 @@ __docker_subcommand() {
|
|||
$opts_build_create_run \
|
||||
$opts_build_create_run_update \
|
||||
"($help)*--build-arg[Build-time variables]:<varname>=<value>: " \
|
||||
"($help)--compress[Compress the build context using gzip]" \
|
||||
"($help -f --file)"{-f=,--file=}"[Name of the Dockerfile]:Dockerfile:_files" \
|
||||
"($help)--force-rm[Always remove intermediate containers]" \
|
||||
"($help)*--label=[Set metadata for an image]:label=value: " \
|
||||
|
|
|
@ -19,6 +19,7 @@ Options:
|
|||
--build-arg value Set build-time variables (default [])
|
||||
--cache-from value Images to consider as cache sources (default [])
|
||||
--cgroup-parent string Optional parent cgroup for the container
|
||||
--compress Compress the build context using gzip
|
||||
--cpu-period int Limit the CPU CFS (Completely Fair Scheduler) period
|
||||
--cpu-quota int Limit the CPU CFS (Completely Fair Scheduler) quota
|
||||
-c, --cpu-shares int CPU shares (relative weight)
|
||||
|
|
|
@ -16,6 +16,7 @@ docker-build - Build a new image from the source code at PATH
|
|||
[**--label**[=*[]*]]
|
||||
[**--no-cache**]
|
||||
[**--pull**]
|
||||
[**--compress**]
|
||||
[**-q**|**--quiet**]
|
||||
[**--rm**[=*true*]]
|
||||
[**-t**|**--tag**[=*[]*]]
|
||||
|
@ -84,6 +85,9 @@ set as the **URL**, the repository is cloned locally and then sent as the contex
|
|||
**--pull**=*true*|*false*
|
||||
Always attempt to pull a newer version of the image. The default is *false*.
|
||||
|
||||
**--compress**=*true*|*false*
|
||||
Compress the build context using gzip. The default is *false*.
|
||||
|
||||
**-q**, **--quiet**=*true*|*false*
|
||||
Suppress the build output and print image ID on success. The default is *false*.
|
||||
|
||||
|
|
Loading…
Reference in a new issue