私はJenkinsからGoogleコンテナレジストリにプッシュしようとしています。ビルドは、Kubernetes Jenkins Plugin内で実行されます。これはgcr.io/cloud-solutions-images/jenkins-k8s-slaveを使用してドッキング画像をKubernetesネイティブDockerに組み込みます。Googleコンテナレジストリにプッシュする失敗:再試行
Googleのコンテナレジストリに認証した後、新しく構築した画像をプッシュしようとしています。これは私のパイプラインスクリプトです:
def imageTag = 'gcr.io/project-id/tag'
def version = version from pom
sh './mvnw package'
sh "docker build -t $imageTag:$version ."
sh('gcloud auth activate-service-account --key-file=$FILE')
sh('docker login -p $(gcloud auth print-access-token) -u _token https://gcr.io')
sh("gcloud docker -- push $imageTag:$version")
プッシュは、次の出力で失敗します。
c6ff94654483: Preparing
209db64c273a: Preparing
762429e05518: Preparing
2be465c0fdf6: Preparing
5bef08742407: Preparing
c6ff94654483: Retrying in 5 seconds
5bef08742407: Retrying in 5 seconds
209db64c273a: Retrying in 5 seconds
2be465c0fdf6: Layer already exists
762429e05518: Layer already exists
c6ff94654483: Retrying in 4 seconds
5bef08742407: Retrying in 4 seconds
209db64c273a: Retrying in 4 seconds
c6ff94654483: Retrying in 3 seconds
5bef08742407: Retrying in 3 seconds
209db64c273a: Retrying in 3 seconds
c6ff94654483: Retrying in 2 seconds
5bef08742407: Retrying in 2 seconds
209db64c273a: Retrying in 2 seconds
c6ff94654483: Retrying in 1 second
5bef08742407: Retrying in 1 second
209db64c273a: Retrying in 1 second
5bef08742407: Retrying in 10 seconds
...
unexpected EOF
私は過去数日間、GitlabのCI/CDランナーがプライベートレポジトリに画像をプッシュ/プルするときにGCRに自動的にログインするように設定しようとしています。どのユーザーアカウントにログインしていますか?個人アカウントまたはサービスアカウント?適切なIAM権限を持っていますか? –
jsonファイルでサービスアカウントを使用していて、権限を変更していません。バケットへの書き込み権限がない可能性があります。私はそれを後で確認し、あなたに知らせるでしょう。 – Jacob
私はあなたのパイプラインを読みました。 '_token'をユーザ名として渡す理由はありますか?高度な認証ページは 'oauth2accesstoken'を使うと言えますか? https://cloud.google.com/container-registry/docs/advanced-authentication –