Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法通过Docker Go SDK将Docker映像推送到ECR_Go - Fatal编程技术网

无法通过Docker Go SDK将Docker映像推送到ECR

无法通过Docker Go SDK将Docker映像推送到ECR,go,Go,我正在使用docker client SDK for Go,将图像推送到AWS ECR时遇到了一个问题 这是我工作的要点 import ( "github.com/docker/docker/api/types" dockerclient "github.com/docker/docker/client" ) func doPush(target string) { envCli, err := dockerclient.NewEnvClient() if err

我正在使用docker client SDK for Go,将图像推送到AWS ECR时遇到了一个问题

这是我工作的要点

import (
    "github.com/docker/docker/api/types"
    dockerclient "github.com/docker/docker/client"
)
func doPush(target string) {
    envCli, err := dockerclient.NewEnvClient()
    if err != nil {
        panic(err)
    }

    rc, err := envCli.ImagePush(
        context.Background(),
        target,
        types.ImagePushOptions{})
    if err != nil {
        panic(err)
    }
    defer rc.Close()
}
我的图像被标记为[regid].dkr.ecr.us-east-1.amazonaws.com/demo:latest,但我发现以下错误:

无效的引用格式

如果我从图像名称中删除[:tag],它将一直工作,直到获得

来自守护程序的错误响应:参数错误且缺少X-Registry-Auth:EOF


我也遇到了同样的问题,通过给docker push选项一个任意的RegistryAuth,我解决了这个问题

因此,以下代码起作用:

closer, err = dockerClient.ImagePush(context.Background(), privateTagName,
                                     types.ImagePushOptions{
                    All: true,
                    RegistryAuth:"123",
                })
if err != nil{
  panic(err)
}
io.Copy(os.Stdout, closer)
closer.Close()

我在书中读到,给RegistryAuth赋予任何值都是可行的。

我猜[regid]中没有什么奇怪的地方吗?@RickyA没有,只是一个普通的12位数字ID。