无法通过Docker Go SDK将Docker映像推送到ECR
我正在使用docker client SDK for Go,将图像推送到AWS 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
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。