Compare commits

..

3 Commits

Author SHA1 Message Date
Antonio Murdaca
3eefe215e0 support insecure registries
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-02-29 11:44:51 +01:00
Antonio Murdaca
e5d9bee80c remove img-type
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-02-29 11:27:43 +01:00
Antonio Murdaca
7d7fb3c4b0 remote sudo_user, upstream has it
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-02-27 11:49:51 +01:00
3 changed files with 40 additions and 44 deletions

View File

@@ -3,8 +3,6 @@ package docker
import (
"encoding/json"
"fmt"
"os"
"path/filepath"
"strings"
"time"
@@ -15,12 +13,12 @@ import (
"github.com/docker/docker/api"
"github.com/docker/docker/cliconfig"
"github.com/docker/docker/image"
"github.com/docker/docker/opts"
versionPkg "github.com/docker/docker/pkg/version"
"github.com/docker/docker/reference"
"github.com/docker/docker/registry"
engineTypes "github.com/docker/engine-api/types"
registryTypes "github.com/docker/engine-api/types/registry"
"github.com/opencontainers/runc/libcontainer/user"
"github.com/runcom/skopeo/types"
"golang.org/x/net/context"
)
@@ -76,21 +74,21 @@ func GetData(c *cli.Context, name string) (*types.ImageInspect, error) {
if err := validateRepoName(repoInfo.Name()); err != nil {
return nil, err
}
//options := &registry.Options{}
//options.Mirrors = opts.NewListOpts(nil)
//options.InsecureRegistries = opts.NewListOpts(nil)
//options.InsecureRegistries.Set("0.0.0.0/0")
//registryService := registry.NewService(options)
registryService := registry.NewService(nil)
//// TODO(runcom): hacky, provide a way of passing tls cert (flag?) to be used to lookup
//for _, ic := range registryService.Config.IndexConfigs {
//ic.Secure = false
//}
options := &registry.Options{}
options.Mirrors = opts.NewListOpts(nil)
options.InsecureRegistries = opts.NewListOpts(nil)
options.InsecureRegistries.Set("0.0.0.0/0")
registryService := registry.NewService(options)
// TODO(runcom): hacky, provide a way of passing tls cert (flag?) to be used to lookup
for _, ic := range registryService.Config.IndexConfigs {
ic.Secure = false
}
endpoints, err := registryService.LookupPullEndpoints(repoInfo)
if err != nil {
return nil, err
}
logrus.Debugf("endpoints: %v", endpoints)
var (
ctx = context.Background()
@@ -211,23 +209,6 @@ func getAuthConfig(c *cli.Context, index *registryTypes.IndexInfo) (engineTypes.
return defAuthConfig, nil
}
sudoUserEnv := os.Getenv("SUDO_USER")
if sudoUserEnv != "" {
sudoUser, err := user.LookupUser(sudoUserEnv)
if err != nil {
return engineTypes.AuthConfig{}, err
}
// override the given docker conf file if called with sudo
cfg = filepath.Join(sudoUser.Home, ".docker")
}
if _, err := os.Stat(cfg); err != nil {
logrus.Debugf("Docker cli config file %q not found: %v, falling back to --username and --password if needed", cfg, err)
if os.IsNotExist(err) {
return defAuthConfig, nil
}
return engineTypes.AuthConfig{}, nil
}
confFile, err := cliconfig.Load(cfg)
if err != nil {
return engineTypes.AuthConfig{}, err

View File

@@ -2,34 +2,54 @@ package main
import (
"fmt"
"strings"
"github.com/codegangsta/cli"
"github.com/runcom/skopeo/docker"
"github.com/runcom/skopeo/types"
)
type imgKind int
const (
imgTypeDocker = "docker"
imgTypeAppc = "appc"
imgTypeDocker = "docker://"
imgTypeAppc = "appc://"
kindUnknown = iota
kindDocker
kindAppc
)
func getImgType(img string) imgKind {
if strings.HasPrefix(img, imgTypeDocker) {
return kindDocker
}
if strings.HasPrefix(img, imgTypeAppc) {
return kindAppc
}
// TODO(runcom): v2 will support this
//return kindUnknown
return kindDocker
}
func inspect(c *cli.Context) (*types.ImageInspect, error) {
var (
imgInspect *types.ImageInspect
err error
name = c.Args().First()
imgType = c.GlobalString("img-type")
kind = getImgType(name)
)
switch imgType {
case imgTypeDocker:
imgInspect, err = docker.GetData(c, name)
switch kind {
case kindDocker:
imgInspect, err = docker.GetData(c, strings.Replace(name, imgTypeDocker, "", -1))
if err != nil {
return nil, err
}
case imgTypeAppc:
return nil, fmt.Errorf("sorry, not implemented yet")
case kindAppc:
return nil, fmt.Errorf("not implemented yet")
default:
return nil, fmt.Errorf("%s image type is invalid, please use either 'docker' or 'appc'", imgType)
return nil, fmt.Errorf("%s image is invalid, please use either 'docker://' or 'appc://'", name)
}
return imgInspect, nil
}

View File

@@ -52,11 +52,6 @@ func main() {
Value: cliconfig.ConfigDir(),
Usage: "Docker's cli config for auth",
},
cli.StringFlag{
Name: "img-type",
Value: imgTypeDocker,
Usage: "Either docker or appc",
},
}
app.Before = func(c *cli.Context) error {
if c.GlobalBool("debug") {