diff --git a/integration-cli/docker_cli_build_test.go b/integration-cli/docker_cli_build_test.go index f00023584..1ece73a1b 100644 --- a/integration-cli/docker_cli_build_test.go +++ b/integration-cli/docker_cli_build_test.go @@ -1133,3 +1133,40 @@ func TestBuildWithVolumeOwnership(t *testing.T) { logDone("build - volume ownership") } + +// testing #1405 - config.Cmd does not get cleaned up if +// utilizing cache +func TestBuildEntrypointRunCleanup(t *testing.T) { + name := "testbuildcmdcleanup" + defer deleteImages(name) + if _, err := buildImage(name, + `FROM busybox + RUN echo "hello"`, + true); err != nil { + t.Fatal(err) + } + + ctx, err := fakeContext(`FROM busybox + RUN echo "hello" + ADD foo /foo + ENTRYPOINT ["/bin/echo"]`, + map[string]string{ + "foo": "hello", + }) + defer ctx.Close() + if err != nil { + t.Fatal(err) + } + if _, err := buildImageFromContext(name, ctx, true); err != nil { + t.Fatal(err) + } + res, err := inspectField(name, "Config.Cmd") + if err != nil { + t.Fatal(err) + } + // Cmd inherited from busybox, maybe will be fixed in #5147 + if expected := "[/bin/sh]"; res != expected { + t.Fatalf("Cmd %s, expected %s", res, expected) + } + logDone("build - cleanup cmd after RUN") +} diff --git a/integration/buildfile_test.go b/integration/buildfile_test.go index 8c02cf043..89412f958 100644 --- a/integration/buildfile_test.go +++ b/integration/buildfile_test.go @@ -414,37 +414,6 @@ func buildImage(context testContextTemplate, t *testing.T, eng *engine.Engine, u return image, err } -// testing #1405 - config.Cmd does not get cleaned up if -// utilizing cache -func TestBuildEntrypointRunCleanup(t *testing.T) { - eng := NewTestEngine(t) - defer nuke(mkDaemonFromEngine(eng, t)) - - img, err := buildImage(testContextTemplate{` - from {IMAGE} - run echo "hello" - `, - nil, nil}, t, eng, true) - if err != nil { - t.Fatal(err) - } - - img, err = buildImage(testContextTemplate{` - from {IMAGE} - run echo "hello" - add foo /foo - entrypoint ["/bin/echo"] - `, - [][2]string{{"foo", "HEYO"}}, nil}, t, eng, true) - if err != nil { - t.Fatal(err) - } - - if len(img.Config.Cmd) != 0 { - t.Fail() - } -} - func TestForbiddenContextPath(t *testing.T) { eng := NewTestEngine(t) defer nuke(mkDaemonFromEngine(eng, t))