Add parent references support to load/save
Restores the correct parent chain relationship between images on docker load if multiple images have been saved. Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com> Upstream-commit: faeff5118f710f7c4f6173c309b52aaba24118c9 Component: engine
This commit is contained in:
@ -311,3 +311,42 @@ func (s *DockerSuite) TestLoadZeroSizeLayer(c *check.C) {
|
||||
|
||||
dockerCmd(c, "load", "-i", "fixtures/load/emptyLayer.tar")
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestSaveLoadParents(c *check.C) {
|
||||
testRequires(c, DaemonIsLinux)
|
||||
|
||||
makeImage := func(from string, addfile string) string {
|
||||
var (
|
||||
out string
|
||||
)
|
||||
out, _ = dockerCmd(c, "run", "-d", from, "touch", addfile)
|
||||
cleanedContainerID := strings.TrimSpace(out)
|
||||
|
||||
out, _ = dockerCmd(c, "commit", cleanedContainerID)
|
||||
imageID := strings.TrimSpace(out)
|
||||
|
||||
dockerCmd(c, "rm", cleanedContainerID)
|
||||
return imageID
|
||||
}
|
||||
|
||||
idFoo := makeImage("busybox", "foo")
|
||||
idBar := makeImage(idFoo, "bar")
|
||||
|
||||
tmpDir, err := ioutil.TempDir("", "save-load-parents")
|
||||
c.Assert(err, checker.IsNil)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
c.Log("tmpdir", tmpDir)
|
||||
|
||||
outfile := filepath.Join(tmpDir, "out.tar")
|
||||
|
||||
dockerCmd(c, "save", "-o", outfile, idBar, idFoo)
|
||||
dockerCmd(c, "rmi", idBar)
|
||||
dockerCmd(c, "load", "-i", outfile)
|
||||
|
||||
inspectOut := inspectField(c, idBar, "Parent")
|
||||
c.Assert(inspectOut, checker.Equals, idFoo)
|
||||
|
||||
inspectOut = inspectField(c, idFoo, "Parent")
|
||||
c.Assert(inspectOut, checker.Equals, "")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user