2017-06-06 94 views
2

我正在使用Docker客户端SDK for Go,并且遇到将图像推送到我的AWS ECR的问题。未能将Docker图像推送到ECR w/Docker Go SDK

这里是

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 - 东 - 1.amazonaws.com /演示我的FUNC的要点:最新的,但我得到以下错误:

invalid reference format

如果我删除了:从图像名称[标签],它的工作,直到我得到一个

Error response from daemon: Bad parameters and missing X-Registry-Auth: EOF

+0

没有什么奇怪的[regid]我猜? – RickyA

+0

@RickyA不,只是一个正常的12位数字身份证。 –

回答

0

我有同样的proble米,我解决了它给予码头推送选项任意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可以工作。

相关问题