mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
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>
This commit is contained in:
parent
05378f4898
commit
ee5228e799
1 changed files with 3 additions and 1 deletions
|
@ -234,7 +234,9 @@ func (s *saveSession) saveImage(id image.ID) (map[layer.DiffID]distribution.Desc
|
||||||
var foreignSrcs map[layer.DiffID]distribution.Descriptor
|
var foreignSrcs map[layer.DiffID]distribution.Descriptor
|
||||||
for i := range img.RootFS.DiffIDs {
|
for i := range img.RootFS.DiffIDs {
|
||||||
v1Img := image.V1Image{
|
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 {
|
if i == len(img.RootFS.DiffIDs)-1 {
|
||||||
v1Img = img.V1Image
|
v1Img = img.V1Image
|
||||||
|
|
Loading…
Add table
Reference in a new issue