2017-06-06 130 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可以工作。

相關問題