mirror of
https://github.com/containers/skopeo.git
synced 2025-07-22 10:22:14 +00:00
Merge pull request #260 from runcom/rerevendor-cimage
revendor containers/image
This commit is contained in:
commit
d0a41799da
@ -6,7 +6,7 @@ rm -rf vendor/
|
|||||||
source 'hack/.vendor-helpers.sh'
|
source 'hack/.vendor-helpers.sh'
|
||||||
|
|
||||||
clone git github.com/urfave/cli v1.17.0
|
clone git github.com/urfave/cli v1.17.0
|
||||||
clone git github.com/containers/image layers-federation https://github.com/runcom/image
|
clone git github.com/containers/image master
|
||||||
clone git gopkg.in/cheggaaa/pb.v1 ad4efe000aa550bb54918c06ebbadc0ff17687b9 https://github.com/cheggaaa/pb
|
clone git gopkg.in/cheggaaa/pb.v1 ad4efe000aa550bb54918c06ebbadc0ff17687b9 https://github.com/cheggaaa/pb
|
||||||
clone git github.com/Sirupsen/logrus v0.10.0
|
clone git github.com/Sirupsen/logrus v0.10.0
|
||||||
clone git github.com/go-check/check v1
|
clone git github.com/go-check/check v1
|
||||||
|
32
vendor/github.com/containers/image/docker/docker_client.go
generated
vendored
32
vendor/github.com/containers/image/docker/docker_client.go
generated
vendored
@ -4,6 +4,7 @@ import (
|
|||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
@ -31,12 +32,17 @@ const (
|
|||||||
dockerCfgObsolete = ".dockercfg"
|
dockerCfgObsolete = ".dockercfg"
|
||||||
|
|
||||||
baseURL = "%s://%s/v2/"
|
baseURL = "%s://%s/v2/"
|
||||||
|
baseURLV1 = "%s://%s/v1/_ping"
|
||||||
tagsURL = "%s/tags/list"
|
tagsURL = "%s/tags/list"
|
||||||
manifestURL = "%s/manifests/%s"
|
manifestURL = "%s/manifests/%s"
|
||||||
blobsURL = "%s/blobs/%s"
|
blobsURL = "%s/blobs/%s"
|
||||||
blobUploadURL = "%s/blobs/uploads/"
|
blobUploadURL = "%s/blobs/uploads/"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// ErrV1NotSupported is returned when we're trying to talk to a
|
||||||
|
// docker V1 registry.
|
||||||
|
var ErrV1NotSupported = errors.New("can't talk to a V1 docker registry")
|
||||||
|
|
||||||
// dockerClient is configuration for dealing with a single Docker registry.
|
// dockerClient is configuration for dealing with a single Docker registry.
|
||||||
type dockerClient struct {
|
type dockerClient struct {
|
||||||
ctx *types.SystemContext
|
ctx *types.SystemContext
|
||||||
@ -382,6 +388,32 @@ func (c *dockerClient) ping() (*pingResponse, error) {
|
|||||||
if err != nil && c.ctx != nil && c.ctx.DockerInsecureSkipTLSVerify {
|
if err != nil && c.ctx != nil && c.ctx.DockerInsecureSkipTLSVerify {
|
||||||
pr, err = ping("http")
|
pr, err = ping("http")
|
||||||
}
|
}
|
||||||
|
if err != nil {
|
||||||
|
// best effort to understand if we're talking to a V1 registry
|
||||||
|
pingV1 := func(scheme string) bool {
|
||||||
|
url := fmt.Sprintf(baseURLV1, scheme, c.registry)
|
||||||
|
resp, err := c.makeRequestToResolvedURL("GET", url, nil, nil, -1, true)
|
||||||
|
logrus.Debugf("Ping %s err %#v", url, err)
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
logrus.Debugf("Ping %s status %d", scheme+"://"+c.registry+"/v1/_ping", resp.StatusCode)
|
||||||
|
if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusUnauthorized {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
isV1 := pingV1("https")
|
||||||
|
if !isV1 && c.ctx != nil && c.ctx.DockerInsecureSkipTLSVerify {
|
||||||
|
isV1 = pingV1("http")
|
||||||
|
}
|
||||||
|
if isV1 {
|
||||||
|
err = ErrV1NotSupported
|
||||||
|
} else {
|
||||||
|
err = fmt.Errorf("pinging docker registry returned %+v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
return pr, err
|
return pr, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user