Browse code

Merge pull request #19155 from coolljt0725/create_cwd_on_create

Create the working directory on container creation

David Calavera authored on 2016/01/15 02:13:44
Showing 3 changed files
... ...
@@ -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
+}