Merge pull request #12894 from stonezdj/200827_dockerhub_offline

Fallback to local repo on errors when proxy to remote repo
This commit is contained in:
Wenkai Yin(尹文开) 2020-08-28 15:14:21 +08:00 committed by GitHub
commit 560eba7bd1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -111,7 +111,19 @@ func handleManifest(w http.ResponseWriter, r *http.Request, next http.Handler) e
return nil
}
log.Debugf("the tag is %v, digest is %v", art.Tag, art.Digest)
man, err := proxyCtl.ProxyManifest(ctx, p, art)
err = proxyManifest(ctx, w, r, next, proxyCtl, p, art)
if err != nil {
if errors.IsNotFoundErr(err) {
return err
}
log.Warningf("Proxy to remote failed, fallback to local repo, error: %v", err)
next.ServeHTTP(w, r)
}
return nil
}
func proxyManifest(ctx context.Context, w http.ResponseWriter, r *http.Request, next http.Handler, ctl proxy.Controller, p *models.Project, art lib.ArtifactInfo) error {
man, err := ctl.ProxyManifest(ctx, p, art)
if err != nil {
return err
}