Sfoglia il codice sorgente

integcli: test container removal for failed builds

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
unclejack 11 anni fa
parent
commit
69dcf767fd

+ 3 - 0
integration-cli/build_tests/TestBuildForceRm/Dockerfile

@@ -0,0 +1,3 @@
+FROM busybox
+RUN true
+RUN thiswillfail

+ 27 - 0
integration-cli/docker_cli_build_test.go

@@ -207,6 +207,33 @@ func TestBuildWithInaccessibleFilesInContext(t *testing.T) {
 	logDone("build - ADD from context with accessible links must work")
 }
 
+func TestBuildForceRm(t *testing.T) {
+	containerCountBefore, err := getContainerCount()
+	if err != nil {
+		t.Fatalf("failed to get the container count: %s", err)
+	}
+
+	buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestBuildForceRm")
+	buildCmd := exec.Command(dockerBinary, "build", "--force-rm", ".")
+	buildCmd.Dir = buildDirectory
+	_, exitCode, err := runCommandWithOutput(buildCmd)
+
+	if err == nil || exitCode == 0 {
+		t.Fatal("failed to build the image")
+	}
+
+	containerCountAfter, err := getContainerCount()
+	if err != nil {
+		t.Fatalf("failed to get the container count: %s", err)
+	}
+
+	if containerCountBefore != containerCountAfter {
+		t.Fatalf("--force-rm shouldn't have left containers behind")
+	}
+
+	logDone("build - ensure --force-rm doesn't leave containers behind")
+}
+
 // TODO: TestCaching
 
 // TODO: TestADDCacheInvalidation