Merge pull request #21 from infosiftr/dockerhub-public-proxy

Add support for DOCKERHUB_PUBLIC_PROXY in skipping code
This commit is contained in:
yosifkit 2020-12-10 17:14:01 -08:00 committed by GitHub
commit 8e42901dea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 17 additions and 1 deletions

View File

@ -3,6 +3,8 @@ package main
import (
"context"
"encoding/json"
"net/url"
"os"
"github.com/containerd/containerd/images"
"github.com/containerd/containerd/reference/docker"
@ -125,5 +127,19 @@ func fetchRegistryResolveHelper(image string) (string, remotes.Resolver, error)
namedRef = docker.TagNameOnly(namedRef)
ref = namedRef
}
return ref.String(), dockerremote.NewResolver(dockerremote.ResolverOptions{}), nil
return ref.String(), dockerremote.NewResolver(dockerremote.ResolverOptions{
Host: func(host string) (string, error) {
if host == "docker.io" {
if publicProxy := os.Getenv("DOCKERHUB_PUBLIC_PROXY"); publicProxy != "" {
if publicProxyURL, err := url.Parse(publicProxy); err == nil {
// TODO Scheme (also not sure if "host:port" will be satisfactory to containerd here, but 🤷)
return publicProxyURL.Host, nil
} else {
return "", err
}
}
}
return host, nil
},
}), nil
}