Create the working directory on container creation
David Calavera authored on 2016/01/15 02:13:44... | ... |
@@ -23,6 +23,10 @@ func (daemon *Daemon) createContainerPlatformSpecificSettings(container *contain |
23 | 23 |
} |
24 | 24 |
defer daemon.Unmount(container) |
25 | 25 |
|
26 |
+ if err := container.SetupWorkingDirectory(); err != nil { |
|
27 |
+ return err |
|
28 |
+ } |
|
29 |
+ |
|
26 | 30 |
for spec := range config.Volumes { |
27 | 31 |
name := stringid.GenerateNonCryptoID() |
28 | 32 |
destination := filepath.Clean(spec) |
... | ... |
@@ -6170,8 +6170,8 @@ func (s *DockerSuite) TestBuildBuildTimeArgExpansion(c *check.C) { |
6170 | 6170 |
if err != nil { |
6171 | 6171 |
c.Fatal(err) |
6172 | 6172 |
} |
6173 |
- if res != wdVal { |
|
6174 |
- c.Fatalf("Config.WorkingDir value mismatch. Expected: %s, got: %s", wdVal, res) |
|
6173 |
+ if res != filepath.Clean(wdVal) { |
|
6174 |
+ c.Fatalf("Config.WorkingDir value mismatch. Expected: %s, got: %s", filepath.Clean(wdVal), res) |
|
6175 | 6175 |
} |
6176 | 6176 |
|
6177 | 6177 |
err = inspectFieldAndMarshall(imgName, "Config.Env", &resArr) |
... | ... |
@@ -415,3 +415,11 @@ func (s *DockerSuite) TestCreateStopSignal(c *check.C) { |
415 | 415 |
c.Assert(res, checker.Contains, "9") |
416 | 416 |
|
417 | 417 |
} |
418 |
+ |
|
419 |
+func (s *DockerSuite) TestCreateWithWorkdir(c *check.C) { |
|
420 |
+ testRequires(c, DaemonIsLinux) |
|
421 |
+ name := "foo" |
|
422 |
+ dir := "/home/foo/bar" |
|
423 |
+ dockerCmd(c, "create", "--name", name, "-w", dir, "busybox") |
|
424 |
+ dockerCmd(c, "cp", fmt.Sprintf("%s:%s", name, dir), "/tmp") |
|
425 |
+} |