繁体   English   中英

如何为私有注册登录凭据创建“RegistryAuth”

[英]How to create “RegistryAuth” for Private Registry Login Credentials

我使用以下命令创建了一个私有注册表:

docker run -d -p 5000:5000 --restart=always --name registry -e REGISTRY_STORAGE_DELETE_ENABLED=true registry:2

我正在尝试使用 Golang docker 客户端 API -> ImagePush将图像推送到此注册表

func (cli *Client) ImagePush(ctx context.Context, image string, options types.ImagePushOptions) (io.ReadCloser, error)

当我放大ImagePushOptions我看到该结构是

type ImagePullOptions struct {
    # All bool
    RegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry
    PrivilegeFunc RequestPrivilegeFunc
}

AnyIdea 如何创建 RegistryAuth 字符串

我尝试执行以下操作:

type AuthArgs struct {
    Username string json:"username"
    Password string json:"password"
    Email string json:"email"
    ServerAddress string json:"serveraddress"
}

func() {
    m := AuthArgs{"docker", "docker", "", "localhost:5000"}
    b, err := json.Marshal(m)

    fmt.Println(string(b))
    encodeStr := base64.StdEncoding.EncodeToString(b)

    refStr := "localhost:5000/" + image + ":" + tag
    fmt.Println(refStr)
    resp, err := cli.ImagePush(ctx, refStr, types.ImagePushOptions{RegistryAuth: encodeStr })

我被困了 3 天,任何帮助都会很棒

auth := types.AuthConfig{
    Username: cfg.User,
    Password: cfg.Passwd,
}
authBytes, _ := json.Marshal(auth)
authBase64 := base64.URLEncoding.EncodeToString(authBytes)

https://github.com/leopoldxx/godocker/blob/master/docker.go

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM