The [`docker buildx bake`][1] command has reached GA; this patch adds a top-level `docker bake` command as alias for `docker buildx bake` to improve discoverability and make it more convenient to use. With this patch: docker --help Usage: docker [OPTIONS] COMMAND A self-sufficient runtime for containers Common Commands: run Create and run a new container from an image exec Execute a command in a running container ps List containers build Build an image from a Dockerfile bake Build from a file pull Download an image from a registry push Upload an image to a registry images List images ... The command is hidden if buildx is not installed; docker --help Usage: docker [OPTIONS] COMMAND A self-sufficient runtime for containers Common Commands: run Create and run a new container from an image exec Execute a command in a running container ps List containers build Build an image from a Dockerfile pull Download an image from a registry push Upload an image to a registry images List images ... We can do some tweaking after this; currently it show an error in situations where buildx is missing. We don't account for "DOCKER_BUILDKIT=0", because this is a new feature that requires buildx, and cannot be "disabled"; buildx missing; docker bake ERROR: bake requires the buildx component but it is missing or broken. Install the buildx component to use bake: https://docs.docker.com/go/buildx/ BuildKit disabled: DOCKER_BUILDKIT=0 docker bake ERROR: bake requires the buildx component but it is missing or broken. Install the buildx component to use bake: https://docs.docker.com/go/buildx/ [1]: https://www.docker.com/blog/ga-launch-docker-bake/ Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
package builder
|
|
|
|
import (
|
|
"github.com/spf13/cobra"
|
|
|
|
"github.com/docker/cli/cli"
|
|
"github.com/docker/cli/cli/command"
|
|
"github.com/docker/cli/cli/command/image"
|
|
)
|
|
|
|
// NewBuilderCommand returns a cobra command for `builder` subcommands
|
|
func NewBuilderCommand(dockerCli command.Cli) *cobra.Command {
|
|
cmd := &cobra.Command{
|
|
Use: "builder",
|
|
Short: "Manage builds",
|
|
Args: cli.NoArgs,
|
|
RunE: command.ShowHelp(dockerCli.Err()),
|
|
Annotations: map[string]string{"version": "1.31"},
|
|
}
|
|
cmd.AddCommand(
|
|
NewPruneCommand(dockerCli),
|
|
image.NewBuildCommand(dockerCli),
|
|
)
|
|
return cmd
|
|
}
|
|
|
|
// NewBakeStubCommand returns a cobra command "stub" for the "bake" subcommand.
|
|
// This command is a placeholder / stub that is dynamically replaced by an
|
|
// alias for "docker buildx bake" if BuildKit is enabled (and the buildx plugin
|
|
// installed).
|
|
func NewBakeStubCommand(dockerCLI command.Streams) *cobra.Command {
|
|
return &cobra.Command{
|
|
Use: "bake [OPTIONS] [TARGET...]",
|
|
Short: "Build from a file",
|
|
RunE: command.ShowHelp(dockerCLI.Err()),
|
|
Annotations: map[string]string{
|
|
// We want to show this command in the "top" category in --help
|
|
// output, and not to be grouped under "management commands".
|
|
"category-top": "5",
|
|
"aliases": "docker buildx bake",
|
|
"version": "1.31",
|
|
},
|
|
}
|
|
}
|