diff --git a/image.go b/image.go index dcad130d3b..2142716d4f 100644 --- a/image.go +++ b/image.go @@ -283,22 +283,26 @@ func (img *Image) Checksum() (string, error) { if err != nil { return "", err } - layerData, err := Tar(layer, Xz) - if err != nil { - return "", err - } - h := sha256.New() - if _, err := io.Copy(h, layerData); err != nil { - return "", err - } - jsonData, err := ioutil.ReadFile(jsonPath(root)) if err != nil { return "", err } + + layerData, err := Tar(layer, Xz) + if err != nil { + return "", err + } + + h := sha256.New() if _, err := io.Copy(h, bytes.NewBuffer(jsonData)); err != nil { return "", err } + if _, err := io.Copy(h, strings.NewReader("\n")); err != nil { + return "", err + } + if _, err := io.Copy(h, layerData); err != nil { + return "", err + } hash := "sha256:"+hex.EncodeToString(h.Sum(nil)) if *checksums == nil {