From adac8d495d0a8fd3ab0b21f30d684a7569346243 Mon Sep 17 00:00:00 2001 From: Priya Wadhwa Date: Fri, 12 Oct 2018 12:48:16 -0700 Subject: [PATCH] Add test dir for ignore files It seems like .dockerignore deletes files containeed within the file locally upon docker build, so I created a temporary test dir to make sure the --ignore flag works. We make sure it exists before building docker and kaniko for Dockerfile_test_ignore, and then delete it after the builds have completed. --- integration/images.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/integration/images.go b/integration/images.go index daeeca24b..b190e61f6 100644 --- a/integration/images.go +++ b/integration/images.go @@ -37,6 +37,7 @@ const ( buildContextPath = "/workspace" cacheDir = "/workspace/cache" baseImageToCache = "gcr.io/google-appengine/debian9@sha256:1d6a9a6d106bd795098f60f4abb7083626354fa6735e81743c7f8cfca11259f0" + testDirPath = "test/dir/path" ) // Arguments to build Dockerfiles with, used for both docker and kaniko builds @@ -54,7 +55,7 @@ var argsMap = map[string][]string{ "Dockerfile_test_multistage": {"file=/foo2"}, } -var filesToIgnore = []string{"context/bar/*", "context/tars/"} +var filesToIgnore = []string{"test/*"} func ignoreFlags() []string { var f []string @@ -174,6 +175,9 @@ func (d *DockerFileBuilder) BuildImage(imageRepo, gcsBucket, dockerfilesPath, do additionalFlags...)..., ) if d.includeDockerIgnore(dockerfile) { + if err := setupTestDir(); err != nil { + return err + } if err := generateDockerIgnore(); err != nil { return err } @@ -188,7 +192,11 @@ func (d *DockerFileBuilder) BuildImage(imageRepo, gcsBucket, dockerfilesPath, do if err := deleteDockerIgnore(); err != nil { return err } + if err := setupTestDir(); err != nil { + return err + } } + defer removeTestDir() contextFlag := "-c" contextPath := buildContextPath @@ -289,6 +297,14 @@ func (d *DockerFileBuilder) includeDockerIgnore(dockerfile string) bool { return false } +func setupTestDir() error { + return os.MkdirAll(testDirPath, 0644) +} + +func removeTestDir() error { + return os.RemoveAll(testDirPath) +} + func generateDockerIgnore() error { f, err := os.Create(".dockerignore") if err != nil {