diff --git a/cmd/nerdctl/build.go b/cmd/nerdctl/build.go index 1035e4ade1c..0bd8567c417 100644 --- a/cmd/nerdctl/build.go +++ b/cmd/nerdctl/build.go @@ -320,6 +320,8 @@ func generateBuildctlArgs(cmd *cobra.Command, buildkitHost string, platform, arg } tags[idx] = dockerreference.TagNameOnly(named).String() } + } else if len(tags) == 0 { + output = output + ",dangling-name-prefix=" } buildctlArgs = buildkitutil.BuildctlBaseArgs(buildkitHost) diff --git a/cmd/nerdctl/build_test.go b/cmd/nerdctl/build_test.go index fcb9812b0e7..df0f600104f 100644 --- a/cmd/nerdctl/build_test.go +++ b/cmd/nerdctl/build_test.go @@ -402,3 +402,21 @@ CMD ["echo", "dockerfile"] base.Cmd("build", "-t", imageName, buildCtx).AssertOK() base.Cmd("run", "--rm", imageName).AssertOutExactly("dockerfile\n") } + +func TestBuildNoTag(t *testing.T) { + testutil.RequiresBuild(t) + base := testutil.NewBase(t) + defer base.Cmd("builder", "prune").AssertOK() + base.Cmd("image", "prune", "--force", "--all").AssertOK() + + dockerfile := fmt.Sprintf(`FROM %s +CMD ["echo", "nerdctl-build-notag-string"] + `, testutil.CommonImage) + buildCtx, err := createBuildContext(dockerfile) + assert.NilError(t, err) + defer os.RemoveAll(buildCtx) + + base.Cmd("build", buildCtx).AssertOK() + base.Cmd("images").AssertOutContains("") + base.Cmd("image", "prune", "--force", "--all").AssertOK() +}