diff options
| author | David Calavera <david.calavera@gmail.com> | 2015-12-30 11:19:15 -0800 |
|---|---|---|
| committer | David Calavera <david.calavera@gmail.com> | 2015-12-30 11:19:15 -0800 |
| commit | 56f8b051ebc423b188c4a9eb8c151a338a4cb042 (patch) | |
| tree | ba8e80262484b3c1142f40657da9f27c9018edc0 /integration-cli/docker_cli_build_test.go | |
| parent | 51fa287368205e1f043d632e5930b7cce08a2419 (diff) | |
| parent | b638bc6f17f7cef6534b20dd44845e5b066ae2cc (diff) | |
| download | docker-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.go | 40 |
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" |
