我正在使用Docker客户端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
答案 0 :(得分:2)
我遇到了同样的问题,我解决了它给Docker推送选项一个任意的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()
我在this post中读到,给RegistryAuth带来任何价值都可以。