mirror of https://github.com/docker/cli.git
build: print error if BuildKit/non-BuildKit-specific flags are used
With this patch, the `--progress`, `--secret`, `--ssh`, and `--output` flags trigger an error when trying to use without BuildKit enabled; DOCKER_BUILDKIT=0 docker build --progress=plain . --progress is only supported with BuildKit enabled. Enable BuildKit with DOCKER_BUILDKIT=1 DOCKER_BUILDKIT=0 docker build --output=foo . --output is only supported with BuildKit enabled. Enable BuildKit with DOCKER_BUILDKIT=1 Likewise, options that are not supported yet by BuildKit, now trigger an error: DOCKER_BUILDKIT=1 docker build --memory=500M . --memory is not supported with BuildKit enabled. Disable BuildKit with DOCKER_BUILDKIT=0 Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
51a091485d
commit
e2986f4467
|
@ -424,7 +424,16 @@ func areFlagsSupported(cmd *cobra.Command, details versionDetails) error {
|
||||||
if _, ok := f.Annotations["experimental"]; ok && !details.ServerInfo().HasExperimental {
|
if _, ok := f.Annotations["experimental"]; ok && !details.ServerInfo().HasExperimental {
|
||||||
errs = append(errs, fmt.Sprintf(`"--%s" is only supported on a Docker daemon with experimental features enabled`, f.Name))
|
errs = append(errs, fmt.Sprintf(`"--%s" is only supported on a Docker daemon with experimental features enabled`, f.Name))
|
||||||
}
|
}
|
||||||
// buildkit-specific flags are noop when buildkit is not enabled, so we do not add an error in that case
|
if _, ok := f.Annotations["buildkit"]; ok {
|
||||||
|
if v, _ := command.BuildKitEnabled(details.ServerInfo()); !v {
|
||||||
|
errs = append(errs, fmt.Sprintf(`"--%s" is only supported with BuildKit enabled. Enable BuildKit with DOCKER_BUILDKIT=1`, f.Name))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if _, ok := f.Annotations["no-buildkit"]; ok {
|
||||||
|
if v, _ := command.BuildKitEnabled(details.ServerInfo()); v {
|
||||||
|
errs = append(errs, fmt.Sprintf(`"--%s" is not supported with BuildKit enabled. Disable BuildKit with DOCKER_BUILDKIT=0`, f.Name))
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
return errors.New(strings.Join(errs, "\n"))
|
return errors.New(strings.Join(errs, "\n"))
|
||||||
|
|
Loading…
Reference in New Issue