Merge pull request #19568 from cpuguy83/17907_fix_rmv
On container rm, don't remove named mountpoints Upstream-commit: 58c2488d07f4c984c853ca4b4a5c86b55c4c784c Component: engine
This commit is contained in:
@@ -4137,3 +4137,42 @@ func (s *DockerSuite) TestRunNamedVolumeCopyImageData(c *check.C) {
|
||||
out, _ := dockerCmd(c, "run", "-v", "foo:/foo", "busybox", "cat", "/foo/hello")
|
||||
c.Assert(strings.TrimSpace(out), check.Equals, "hello")
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestRunNamedVolumeNotRemoved(c *check.C) {
|
||||
prefix := ""
|
||||
if daemonPlatform == "windows" {
|
||||
prefix = "c:"
|
||||
}
|
||||
|
||||
dockerCmd(c, "volume", "create", "--name", "test")
|
||||
|
||||
dockerCmd(c, "run", "--rm", "-v", "test:"+prefix+"/foo", "-v", prefix+"/bar", "busybox", "true")
|
||||
dockerCmd(c, "volume", "inspect", "test")
|
||||
out, _ := dockerCmd(c, "volume", "ls", "-q")
|
||||
c.Assert(strings.TrimSpace(out), checker.Equals, "test")
|
||||
|
||||
dockerCmd(c, "run", "--name=test", "-v", "test:"+prefix+"/foo", "-v", prefix+"/bar", "busybox", "true")
|
||||
dockerCmd(c, "rm", "-fv", "test")
|
||||
dockerCmd(c, "volume", "inspect", "test")
|
||||
out, _ = dockerCmd(c, "volume", "ls", "-q")
|
||||
c.Assert(strings.TrimSpace(out), checker.Equals, "test")
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestRunNamedVolumesFromNotRemoved(c *check.C) {
|
||||
prefix := ""
|
||||
if daemonPlatform == "windows" {
|
||||
prefix = "c:"
|
||||
}
|
||||
|
||||
dockerCmd(c, "volume", "create", "--name", "test")
|
||||
dockerCmd(c, "run", "--name=parent", "-v", "test:"+prefix+"/foo", "-v", prefix+"/bar", "busybox", "true")
|
||||
dockerCmd(c, "run", "--name=child", "--volumes-from=parent", "busybox", "true")
|
||||
|
||||
// Remove the parent so there are not other references to the volumes
|
||||
dockerCmd(c, "rm", "-f", "parent")
|
||||
// now remove the child and ensure the named volume (and only the named volume) still exists
|
||||
dockerCmd(c, "rm", "-fv", "child")
|
||||
dockerCmd(c, "volume", "inspect", "test")
|
||||
out, _ := dockerCmd(c, "volume", "ls", "-q")
|
||||
c.Assert(strings.TrimSpace(out), checker.Equals, "test")
|
||||
}
|
||||
|
||||
@@ -228,6 +228,9 @@ func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverNamed(c *check.C) {
|
||||
c.Assert(err, checker.IsNil, check.Commentf(out))
|
||||
c.Assert(out, checker.Contains, s.server.URL)
|
||||
|
||||
_, err = s.d.Cmd("volume", "rm", "external-volume-test")
|
||||
c.Assert(err, checker.IsNil)
|
||||
|
||||
p := hostVolumePath("external-volume-test")
|
||||
_, err = os.Lstat(p)
|
||||
c.Assert(err, checker.NotNil)
|
||||
@@ -362,6 +365,9 @@ func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverRetryNotImmediatelyE
|
||||
c.Fatal("volume creates fail when plugin not immediately available")
|
||||
}
|
||||
|
||||
_, err = s.d.Cmd("volume", "rm", "external-volume-test")
|
||||
c.Assert(err, checker.IsNil)
|
||||
|
||||
c.Assert(s.ec.activations, checker.Equals, 1)
|
||||
c.Assert(s.ec.creations, checker.Equals, 1)
|
||||
c.Assert(s.ec.removals, checker.Equals, 1)
|
||||
@@ -385,7 +391,7 @@ func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverBindExternalVolume(c
|
||||
c.Assert(mounts[0].Driver, checker.Equals, "test-external-volume-driver")
|
||||
}
|
||||
|
||||
func (s *DockerExternalVolumeSuite) TestStartExternalVolumeDriverList(c *check.C) {
|
||||
func (s *DockerExternalVolumeSuite) TesttExternalVolumeDriverList(c *check.C) {
|
||||
dockerCmd(c, "volume", "create", "-d", "test-external-volume-driver", "--name", "abc")
|
||||
out, _ := dockerCmd(c, "volume", "ls")
|
||||
ls := strings.Split(strings.TrimSpace(out), "\n")
|
||||
@@ -399,7 +405,7 @@ func (s *DockerExternalVolumeSuite) TestStartExternalVolumeDriverList(c *check.C
|
||||
c.Assert(s.ec.lists, check.Equals, 1)
|
||||
}
|
||||
|
||||
func (s *DockerExternalVolumeSuite) TestStartExternalVolumeDriverGet(c *check.C) {
|
||||
func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverGet(c *check.C) {
|
||||
out, _, err := dockerCmdWithError("volume", "inspect", "dummy")
|
||||
c.Assert(err, check.NotNil, check.Commentf(out))
|
||||
c.Assert(s.ec.gets, check.Equals, 1)
|
||||
|
||||
Reference in New Issue
Block a user