2017-05-02 15 views
3

私はジェンキンスパイプラインでアマゾンECRにオッカー画像をプッシュすることはできませんよ。私はいつもここでno basic auth credentialsジェンキンスアマゾンECR:なし基本認証資格情報

:-(を取得し、私の設定です:

  • ジェンキンス2.46.2
  • Amazon ECR plugin 1.4
  • 私は0123を印刷してきたジェンキンス(ローカルでテストされ、正常AWS ECRにプッシュ)
  • にAWSの資格情報aws-jenkinsを追加しました私Jenkinsfile

JenkinsfileでデバッグAUTHへ:

stage("Docker") { 
    dir(path) { 
    docker.build("my-image:latest") 
    } 
    docker.withRegistry("https://<my-aws-id>.dkr.ecr.eu-central-1.amazonaws.com", "ecr:eu-central-1:aws-jenkins") { 
    sh "cat /root/.dockercfg" // debug 
    docker.image("my-image:latest").push() 
    } 
} 

ログ:

[Pipeline] withDockerRegistry 
Wrote authentication to /root/.dockercfg 
[Pipeline] { 
[Pipeline] sh 
[docker-emotion-compilers] Running shell script 
+ cat /root/.dockercfg 
{"https://<my-aws-id>.dkr.ecr.eu-central-1.amazonaws.com": { 
    "auth": "[...]", 
    "email": "[email protected]" 
}}[Pipeline] sh 
[docker-emotion-compilers] Running shell script 
+ docker tag --force=true my-image:latest <my-aws-id>.dkr.ecr.eu-central-1.amazonaws.com/my-image:latest 
Warning: '--force' is deprecated, it will be removed soon. See usage. 
[Pipeline] sh 
[docker-emotion-compilers] Running shell script 
+ docker push <my-aws-id>.dkr.ecr.eu-central-1.amazonaws.com/my-image:latest 
The push refers to a repository [<my-aws-id>.dkr.ecr.eu-central-1.amazonaws.com/my-image] 
e30bf54e0f87: Preparing 
b9f2c30c0d28: Preparing 
5defc95691fd: Preparing 
295d6a056bfd: Preparing 
no basic auth credentials 
[Pipeline] } 
[Pipeline] // withDockerRegistry 

任意のアイデア?

UPDATE(2017年5月23日):
ここでは、JIRAの課題である: https://issues.jenkins-ci.org/browse/JENKINS-44143

+0

ecr:eu-central-1:はAWS credですか? –

+0

はい。わかりやすく私の質問を更新しました。私はJenkinsで新しいAWS認証情報を作成し、それを 'aws-jenkins'という名前にしました。 –

+0

Jiraの問題を追加しました:https://issues.jenkins-ci.org/browse/JENKINS-44143 –

答えて

0

docker.withRegistryは、開始時にECRへのログインを実行し、終了したらログアウトすることが理にかなってさえいること実行されません。 したがって、awscliをインストールし、プッシュを実行する前にECR loginコマンドを追加する必要があります。

のsh( "のevalの\ $(AWS ECR GET-ログイン--no-含ま-メール| sedはさん| https://|| ')")

は、詳細な例のためhttp://www.tikalk.com/devops/ecr-in-pipeline/を参照してください。

関連する問題