mirror of
https://github.com/clearlinux/docker.git
synced 2026-09-06 13:41:36 +00:00
Make sure COPY/ADD on dirs doesn't grab too many files
Add check for / first - per LK4D4's comment. Add a comment to explain why we're adding a / Signed-off-by: Doug Davis <dug@us.ibm.com>
This commit is contained in:
@@ -1175,6 +1175,37 @@ func TestBuildADDLocalFileWithoutCache(t *testing.T) {
|
||||
logDone("build - add local file without cache")
|
||||
}
|
||||
|
||||
func TestBuildCopyDirButNotFile(t *testing.T) {
|
||||
name := "testbuildcopydirbutnotfile"
|
||||
defer deleteImages(name)
|
||||
dockerfile := `
|
||||
FROM scratch
|
||||
COPY dir /tmp/`
|
||||
ctx, err := fakeContext(dockerfile, map[string]string{
|
||||
"dir/foo": "hello",
|
||||
})
|
||||
defer ctx.Close()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
id1, err := buildImageFromContext(name, ctx, true)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// Check that adding file with similar name doesn't mess with cache
|
||||
if err := ctx.Add("dir_file", "hello2"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
id2, err := buildImageFromContext(name, ctx, true)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if id1 != id2 {
|
||||
t.Fatal("The cache should have been used but wasn't")
|
||||
}
|
||||
logDone("build - add current directory but not file")
|
||||
}
|
||||
|
||||
func TestBuildADDCurrentDirWithCache(t *testing.T) {
|
||||
name := "testbuildaddcurrentdirwithcache"
|
||||
defer deleteImages(name)
|
||||
|
||||
Reference in New Issue
Block a user