Merge pull request #11134 from rhatdan/buildx

Alias build to buildx, so it won't fail
This commit is contained in:
openshift-ci[bot]
2021-08-09 20:09:16 +00:00
committed by GitHub
5 changed files with 80 additions and 1 deletions

View File

@ -67,6 +67,18 @@ var (
podman image build --layers --force-rm --tag imageName .`,
}
buildxBuildCmd = &cobra.Command{
Args: buildCmd.Args,
Use: buildCmd.Use,
Short: buildCmd.Short,
Long: buildCmd.Long,
RunE: buildCmd.RunE,
ValidArgsFunction: buildCmd.ValidArgsFunction,
Example: `podman buildx build .
podman buildx build --creds=username:password -t imageName -f Containerfile.simple .
podman buildx build --layers --force-rm --tag imageName .`,
}
buildOpts = buildFlagsWrapper{}
)
@ -91,11 +103,24 @@ func init() {
Parent: imageCmd,
})
buildFlags(imageBuildCmd)
registry.Commands = append(registry.Commands, registry.CliCommand{
Command: buildxBuildCmd,
Parent: buildxCmd,
})
buildFlags(buildxBuildCmd)
}
func buildFlags(cmd *cobra.Command) {
flags := cmd.Flags()
// buildx build --load ignored, but added for compliance
flags.Bool("load", false, "buildx --load")
_ = flags.MarkHidden("load")
// buildx build --progress ignored, but added for compliance
flags.String("progress", "auto", "buildx --progress")
_ = flags.MarkHidden("progress")
// Podman flags
flags.BoolVarP(&buildOpts.SquashAll, "squash-all", "", false, "Squash all layers into a single layer")

View File

@ -0,0 +1,29 @@
package images
import (
"github.com/containers/podman/v3/cmd/podman/registry"
"github.com/containers/podman/v3/cmd/podman/validate"
"github.com/spf13/cobra"
)
var (
// Command: podman _buildx_
// This is a hidden command, which was added to make converting
// from Docker to Podman easier.
// For now podman buildx build just calls into podman build
// If we are adding new buildx features, we will add them by default
// to podman build.
buildxCmd = &cobra.Command{
Use: "buildx",
Short: "Build images",
Long: "Build images",
RunE: validate.SubCommandExists,
Hidden: true,
}
)
func init() {
registry.Commands = append(registry.Commands, registry.CliCommand{
Command: buildxCmd,
})
}

View File

@ -33,8 +33,10 @@ func TestShellCompletionFunctions(t *testing.T) {
func checkCommand(t *testing.T, cmd *cobra.Command) {
if cmd.HasSubCommands() {
for _, childCmd := range cmd.Commands() {
if !childCmd.Hidden {
checkCommand(t, childCmd)
}
}
// if not check if completion for that command is provided
} else if cmd.ValidArgsFunction == nil && cmd.ValidArgs == nil {

View File

@ -43,6 +43,8 @@ containers can be left in container storage. Use the `podman ps --all --storage`
command to see these containers. External containers can be removed with the
`podman rm --storage` command.
`podman buildx build` command is an alias of `podman build`. Not all `buildx build` features are available in Podman. The `buildx build` option is provided for scripting compatibility.
## OPTIONS
#### **--add-host**=*host*

View File

@ -29,6 +29,27 @@ EOF
run_podman rmi -f build_test
}
@test "podman buildx - basic test" {
rand_filename=$(random_string 20)
rand_content=$(random_string 50)
tmpdir=$PODMAN_TMPDIR/build-test
mkdir -p $tmpdir
dockerfile=$tmpdir/Dockerfile
cat >$dockerfile <<EOF
FROM $IMAGE
RUN echo $rand_content > /$rand_filename
EOF
run_podman buildx build --load -t build_test --format=docker $tmpdir
is "$output" ".*COMMIT" "COMMIT seen in log"
run_podman run --rm build_test cat /$rand_filename
is "$output" "$rand_content" "reading generated file in image"
run_podman rmi -f build_test
}
@test "podman build test -f -" {
rand_filename=$(random_string 20)
rand_content=$(random_string 50)