summaryrefslogtreecommitdiff
path: root/integration-cli/docker_cli_build_test.go
diff options
context:
space:
mode:
authorDavid Calavera <david.calavera@gmail.com>2015-12-30 11:19:15 -0800
committerDavid Calavera <david.calavera@gmail.com>2015-12-30 11:19:15 -0800
commit56f8b051ebc423b188c4a9eb8c151a338a4cb042 (patch)
treeba8e80262484b3c1142f40657da9f27c9018edc0 /integration-cli/docker_cli_build_test.go
parent51fa287368205e1f043d632e5930b7cce08a2419 (diff)
parentb638bc6f17f7cef6534b20dd44845e5b066ae2cc (diff)
downloaddocker-56f8b051ebc423b188c4a9eb8c151a338a4cb042.tar.gz
Merge pull request #18158 from mauri/add_owner
ADD files to a folder doesn't set correct UID and GID
Diffstat (limited to 'integration-cli/docker_cli_build_test.go')
-rw-r--r--integration-cli/docker_cli_build_test.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/integration-cli/docker_cli_build_test.go b/integration-cli/docker_cli_build_test.go
index b8972844d2..ba977194f9 100644
--- a/integration-cli/docker_cli_build_test.go
+++ b/integration-cli/docker_cli_build_test.go
@@ -3240,6 +3240,46 @@ func (s *DockerSuite) TestBuildAddFileNotFound(c *check.C) {
}
}
+func (s *DockerSuite) TestBuildAddChangeOwnership(c *check.C) {
+ testRequires(c, DaemonIsLinux)
+ name := "testbuildaddown"
+
+ ctx := func() *FakeContext {
+ dockerfile := `
+ FROM busybox
+ ADD foo /bar/
+ RUN [ $(stat -c %U:%G "/bar") = 'root:root' ]
+ RUN [ $(stat -c %U:%G "/bar/foo") = 'root:root' ]
+ `
+ tmpDir, err := ioutil.TempDir("", "fake-context")
+ c.Assert(err, check.IsNil)
+ testFile, err := os.Create(filepath.Join(tmpDir, "foo"))
+ if err != nil {
+ c.Fatalf("failed to create foo file: %v", err)
+ }
+ defer testFile.Close()
+
+ chownCmd := exec.Command("chown", "daemon:daemon", "foo")
+ chownCmd.Dir = tmpDir
+ out, _, err := runCommandWithOutput(chownCmd)
+ if err != nil {
+ c.Fatal(err, out)
+ }
+
+ if err := ioutil.WriteFile(filepath.Join(tmpDir, "Dockerfile"), []byte(dockerfile), 0644); err != nil {
+ c.Fatalf("failed to open destination dockerfile: %v", err)
+ }
+ return fakeContextFromDir(tmpDir)
+ }()
+
+ defer ctx.Close()
+
+ if _, err := buildImageFromContext(name, ctx, true); err != nil {
+ c.Fatalf("build failed to complete for TestBuildAddChangeOwnership: %v", err)
+ }
+
+}
+
func (s *DockerSuite) TestBuildInheritance(c *check.C) {
testRequires(c, DaemonIsLinux)
name := "testbuildinheritance"