Follow #28926, fix docker save can't share layers in the tar archive.

After https://github.com/docker/docker/pull/28926, if saving multiple images
which have common layers at same time, the common layers can't share in the tar archive
because the hash ID changes because of the Create time. The Create time is used for
pre v1.9 which treat each layer as a image and make no sense for after v1.10.
To make the hash ID consistent and keep the image save from >1.10 working properly
on pre v1.9, using a constant Create time `time.Unix(0,0)`.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
Upstream-commit: ee5228e799ab82e7f81a9673dec9228469c86dfd
Component: engine
This commit is contained in:
Lei Jitang
2017-01-17 05:40:59 -05:00
parent 7ef3e12aec
commit b14161740b
+3 -1
View File
@@ -234,7 +234,9 @@ func (s *saveSession) saveImage(id image.ID) (map[layer.DiffID]distribution.Desc
var foreignSrcs map[layer.DiffID]distribution.Descriptor
for i := range img.RootFS.DiffIDs {
v1Img := image.V1Image{
Created: img.Created,
// This is for backward compatibility used for
// pre v1.9 docker.
Created: time.Unix(0, 0),
}
if i == len(img.RootFS.DiffIDs)-1 {
v1Img = img.V1Image