DockerイメージをプライベートGCPレジストリにプッシュしているときに問題が発生します。Google CloudPlatformから所有者の役割を持つ新しいサービスアカウントを作成しました。次に、サービスキーを作成し、jsonファイル(サービスアカウントからダウンロードしたもの)のコンテンツをGitlab CI / CD変数の$ GCP_SERVICE_KEY変数にコピーしました。
これは私の.gitlab-ci.yamlファイルです:
image: python:3.6
stages:
- push
before_script:
- mkdir -p $HOME/.docker
- echo "$GCP_SERVICE_KEY" >> "$HOME/.docker/config.json"
dockerpush:
stage: push
image: docker:stable
services:
- docker:dind
script:
- docker build --build-arg MONGODB_URI=$MONGODB_URI -t my_image_name .
- docker login -u _json_key --password-stdin https://gcr.io < $HOME/.docker/config.json
- docker tag my_image_name eu.gcr.io/my_project_id/my_image_name
- docker push eu.gcr.io/my_project_id/my_image_name
コンソールログを確認すると、「ログインに成功しました」と表示されます。しかし、GCPレジストリにプッシュできません。プロジェクトID、ユーザーの役割を確認しましたが、すべて問題ないようです。しかし、なぜ「許可されていない」エラーが表示されるのですか?
$ docker login -u _json_key -p "$GCP_SERVICE_KEY" https://gcr.io
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
$ docker tag my_image_name eu.gcr.io/my_project_id/my_image_name
$ docker push eu.gcr.io/my_project_id/my_image_name
The push refers to repository
Preparing
Preparing
unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials.
To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication
にログインしていますhttps://gcr.io
が、https://eu.gcr.io
docker login
コマンドをに更新しますhttps://eu.gcr.io
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加