diff --git a/cmd/isulad_img/utils.go b/cmd/isulad_img/utils.go index eda9faa9b58709c3f39f8c51844b66577c932587..4af42f15f88679ee344137c5d1303e928f12b847 100644 --- a/cmd/isulad_img/utils.go +++ b/cmd/isulad_img/utils.go @@ -236,8 +236,8 @@ func readAuthFromStdin() (string, string, error) { return "", "", fmt.Errorf("error reading authentication: %v", err) } - if err := json.Unmarshal(line, &authData); err != nil { - return "", "", fmt.Errorf("error unmarshal authentication: %v", err) + if err2 := json.Unmarshal(line, &authData); err2 != nil { + return "", "", fmt.Errorf("error unmarshal authentication: %v", err2) } if authData.Username != "" { @@ -293,6 +293,12 @@ func getHealthcheck(store cstorage.Store, containerImageName string) (*HealthCon if err != nil { return nil, err } + + // schema1 doesn't have config blob + if cb == nil { + return nil, nil + } + config := &ConfigFromJSON{} if err := json.Unmarshal(cb, config); err != nil { return nil, err diff --git a/iSulad-img.spec b/iSulad-img.spec index fab735de85438f99b269f0420b9f6c989b7003cf..7b79791462d191e9df301864decaecca9663f5be 100644 --- a/iSulad-img.spec +++ b/iSulad-img.spec @@ -1,5 +1,5 @@ %global _version 2.0.0 -%global _release 20200420.005423.git3cd302f6 +%global _release 20200422.083956.git12ad23f0 Name: iSulad-img Version: %{_version} Release: %{_release} diff --git a/patch/0053-support-pull-image-of-schema1.patch b/patch/0053-support-pull-image-of-schema1.patch new file mode 100644 index 0000000000000000000000000000000000000000..6427a112082d601acc817adc69730bb5c87226b0 --- /dev/null +++ b/patch/0053-support-pull-image-of-schema1.patch @@ -0,0 +1,29 @@ +From e0b3486880ca376e72c0f721ba1c5510c3e360cd Mon Sep 17 00:00:00 2001 +From: WangFengTu +Date: Wed, 22 Apr 2020 08:21:59 -0400 +Subject: [PATCH] support pull image of schema1 + +Signed-off-by: WangFengTu +--- + vendor/github.com/containers/image/copy/copy.go | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/vendor/github.com/containers/image/copy/copy.go b/vendor/github.com/containers/image/copy/copy.go +index 4d75b65..da119d5 100644 +--- a/vendor/github.com/containers/image/copy/copy.go ++++ b/vendor/github.com/containers/image/copy/copy.go +@@ -381,6 +381,11 @@ func (ic *imageCopier) checkLayersDiffIDs(ctx context.Context) error { + return errors.Wrap(err, "Error getting config blob when checking layer's diffIDs") + } + ++ // schema1 doesn't have config blob ++ if string(configBytes) == "" { ++ return nil ++ } ++ + var config manifest.Schema2Image + if err := json.Unmarshal(configBytes, &config); err != nil { + return errors.Wrapf(err, "Error decoding config %s", string(configBytes)) +-- +2.19.1 + diff --git a/patch/series-patch.conf b/patch/series-patch.conf index 41e75ff7682a9c1136503e4f78596c02b41a7923..ed5ba92029a7aad0edfda0c8ca2b1e5388145f15 100644 --- a/patch/series-patch.conf +++ b/patch/series-patch.conf @@ -50,3 +50,4 @@ 0050-calculate-target-size-if-layer-blob-is-symlink.patch 0051-Get-system-s-real-page-size.patch 0052-clean-container-if-save-json-failed.patch +0053-support-pull-image-of-schema1.patch