diff --git a/dockerclient/client.go b/dockerclient/client.go index 0173b365b..803ec7148 100644 --- a/dockerclient/client.go +++ b/dockerclient/client.go @@ -936,6 +936,9 @@ func (e *ClientExecutor) CopyContainer(container *docker.Container, excludes []s } // TODO: reuse source for _, src := range c.Src { + if src == "" { + src = "*" + } klog.V(4).Infof("Archiving %s download=%t fromFS=%t from=%s", src, c.Download, c.FromFS, c.From) var r io.Reader var closer io.Closer diff --git a/dockerclient/conformance_test.go b/dockerclient/conformance_test.go index f7d890630..e20262d73 100644 --- a/dockerclient/conformance_test.go +++ b/dockerclient/conformance_test.go @@ -269,6 +269,16 @@ func TestConformanceInternal(t *testing.T) { Name: "copy chown", ContextDir: "testdata/copychown", }, + { + Name: "copy empty 1", + ContextDir: "testdata/copyempty", + Dockerfile: "Dockerfile", + }, + { + Name: "copy empty 2", + ContextDir: "testdata/copyempty", + Dockerfile: "Dockerfile2", + }, { Name: "copy dir", ContextDir: "testdata/copydir", diff --git a/dockerclient/testdata/copyempty/.script b/dockerclient/testdata/copyempty/.script new file mode 100644 index 000000000..f52d05771 --- /dev/null +++ b/dockerclient/testdata/copyempty/.script @@ -0,0 +1,2 @@ +#!/bin/bash +: \ No newline at end of file diff --git a/dockerclient/testdata/copyempty/Dockerfile b/dockerclient/testdata/copyempty/Dockerfile new file mode 100644 index 000000000..8b8c87ede --- /dev/null +++ b/dockerclient/testdata/copyempty/Dockerfile @@ -0,0 +1,2 @@ +FROM centos:7 +COPY "" /usr/local/tmp/ diff --git a/dockerclient/testdata/copyempty/Dockerfile2 b/dockerclient/testdata/copyempty/Dockerfile2 new file mode 100644 index 000000000..b99b8adc3 --- /dev/null +++ b/dockerclient/testdata/copyempty/Dockerfile2 @@ -0,0 +1,2 @@ +FROM centos:7 +COPY script1 "" script2 /usr/local/tmp/ diff --git a/dockerclient/testdata/copyempty/script1 b/dockerclient/testdata/copyempty/script1 new file mode 100644 index 000000000..c3c3f3f53 --- /dev/null +++ b/dockerclient/testdata/copyempty/script1 @@ -0,0 +1,2 @@ +#!/bin/bash +exit 0 \ No newline at end of file diff --git a/dockerclient/testdata/copyempty/script2 b/dockerclient/testdata/copyempty/script2 new file mode 100644 index 000000000..80f336a03 --- /dev/null +++ b/dockerclient/testdata/copyempty/script2 @@ -0,0 +1,2 @@ +#!/bin/bash +exit 1 \ No newline at end of file