docker push to gcr.io fails with “denied: Token exchange failed for project”












0















I've discovered a flow that works through GCP console but not through the gcloud CLI.



Minimal Repro



The following bash snippet creates a fresh GCP project and attempts to push an image to gcr.io, but fails with "access denied" even though the user is project owner:



gcloud auth login

PROJECT_ID="example-project-20181120"
gcloud projects create "$PROJECT_ID" --set-as-default
gcloud services enable containerregistry.googleapis.com
gcloud auth configure-docker --quiet

mkdir ~/docker-source && cd ~/docker-source
git clone https://github.com/mtlynch/docker-flask-upload-demo.git .

LOCAL_IMAGE_NAME="flask-demo-app"
GCR_IMAGE_PATH="gcr.io/${PROJECT_ID}/flask-demo-app"
docker build --tag "$LOCAL_IMAGE_NAME" .
docker tag "$LOCAL_IMAGE_NAME" "$GCR_IMAGE_PATH"
docker push "$GCR_IMAGE_PATH"


Result



The push refers to repository [gcr.io/example-project-20181120/flask-demo-app]
02205dbcdc63: Preparing
06ade19a43a0: Preparing
38d9ac54a7b9: Preparing
f83363c693c0: Preparing
b0d071df1063: Preparing
90d1009ce6fe: Waiting
denied: Token exchange failed for project 'example-project-20181120'. Access denied.


The system is Ubuntu 16.04 with the latest version of gcloud 225.0.0, as of this writing. The account I auth'ed with has role roles/owner.



Inconsistency with GCP Console



I notice that if I follow the same flow through GCP Console, I can docker push successfully:




  1. Create a new GCP project via GCP Console

  2. Create a service account with roles/owner via GCP Console

  3. Download JSON key for service account

  4. Enable container registry API via GCP Console

  5. gcloud auth activate-service-account --key-file key.json

  6. gcloud config set project $PROJECT_ID

  7. gcloud auth configure-docker --quiet

  8. docker tag "$LOCAL_IMAGE_NAME" "$GCR_IMAGE_PATH" && docker push "$GCR_IMAGE_PATH"


Result: Works as expected. Successfully pushes docker image to gcr.io.



Other attempts



I also tried using gcloud auth login as my @gmail.com account, then using that account to create a service account with gcloud, but that gets the same denied error:



SERVICE_ACCOUNT_NAME=test-service-account
gcloud iam service-accounts create "$SERVICE_ACCOUNT_NAME"
KEY_FILE="${HOME}/key.json"
gcloud iam service-accounts keys create "$KEY_FILE"
--iam-account "${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
gcloud projects add-iam-policy-binding "$PROJECT_ID"
--member "serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
--role roles/owner
gcloud auth activate-service-account --key-file="${HOME}/key.json"

docker push "$GCR_IMAGE_PATH"


Result: denied: Token exchange failed for project 'example-project-20181120'. Access denied.










share|improve this question





























    0















    I've discovered a flow that works through GCP console but not through the gcloud CLI.



    Minimal Repro



    The following bash snippet creates a fresh GCP project and attempts to push an image to gcr.io, but fails with "access denied" even though the user is project owner:



    gcloud auth login

    PROJECT_ID="example-project-20181120"
    gcloud projects create "$PROJECT_ID" --set-as-default
    gcloud services enable containerregistry.googleapis.com
    gcloud auth configure-docker --quiet

    mkdir ~/docker-source && cd ~/docker-source
    git clone https://github.com/mtlynch/docker-flask-upload-demo.git .

    LOCAL_IMAGE_NAME="flask-demo-app"
    GCR_IMAGE_PATH="gcr.io/${PROJECT_ID}/flask-demo-app"
    docker build --tag "$LOCAL_IMAGE_NAME" .
    docker tag "$LOCAL_IMAGE_NAME" "$GCR_IMAGE_PATH"
    docker push "$GCR_IMAGE_PATH"


    Result



    The push refers to repository [gcr.io/example-project-20181120/flask-demo-app]
    02205dbcdc63: Preparing
    06ade19a43a0: Preparing
    38d9ac54a7b9: Preparing
    f83363c693c0: Preparing
    b0d071df1063: Preparing
    90d1009ce6fe: Waiting
    denied: Token exchange failed for project 'example-project-20181120'. Access denied.


    The system is Ubuntu 16.04 with the latest version of gcloud 225.0.0, as of this writing. The account I auth'ed with has role roles/owner.



    Inconsistency with GCP Console



    I notice that if I follow the same flow through GCP Console, I can docker push successfully:




    1. Create a new GCP project via GCP Console

    2. Create a service account with roles/owner via GCP Console

    3. Download JSON key for service account

    4. Enable container registry API via GCP Console

    5. gcloud auth activate-service-account --key-file key.json

    6. gcloud config set project $PROJECT_ID

    7. gcloud auth configure-docker --quiet

    8. docker tag "$LOCAL_IMAGE_NAME" "$GCR_IMAGE_PATH" && docker push "$GCR_IMAGE_PATH"


    Result: Works as expected. Successfully pushes docker image to gcr.io.



    Other attempts



    I also tried using gcloud auth login as my @gmail.com account, then using that account to create a service account with gcloud, but that gets the same denied error:



    SERVICE_ACCOUNT_NAME=test-service-account
    gcloud iam service-accounts create "$SERVICE_ACCOUNT_NAME"
    KEY_FILE="${HOME}/key.json"
    gcloud iam service-accounts keys create "$KEY_FILE"
    --iam-account "${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding "$PROJECT_ID"
    --member "serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
    --role roles/owner
    gcloud auth activate-service-account --key-file="${HOME}/key.json"

    docker push "$GCR_IMAGE_PATH"


    Result: denied: Token exchange failed for project 'example-project-20181120'. Access denied.










    share|improve this question



























      0












      0








      0








      I've discovered a flow that works through GCP console but not through the gcloud CLI.



      Minimal Repro



      The following bash snippet creates a fresh GCP project and attempts to push an image to gcr.io, but fails with "access denied" even though the user is project owner:



      gcloud auth login

      PROJECT_ID="example-project-20181120"
      gcloud projects create "$PROJECT_ID" --set-as-default
      gcloud services enable containerregistry.googleapis.com
      gcloud auth configure-docker --quiet

      mkdir ~/docker-source && cd ~/docker-source
      git clone https://github.com/mtlynch/docker-flask-upload-demo.git .

      LOCAL_IMAGE_NAME="flask-demo-app"
      GCR_IMAGE_PATH="gcr.io/${PROJECT_ID}/flask-demo-app"
      docker build --tag "$LOCAL_IMAGE_NAME" .
      docker tag "$LOCAL_IMAGE_NAME" "$GCR_IMAGE_PATH"
      docker push "$GCR_IMAGE_PATH"


      Result



      The push refers to repository [gcr.io/example-project-20181120/flask-demo-app]
      02205dbcdc63: Preparing
      06ade19a43a0: Preparing
      38d9ac54a7b9: Preparing
      f83363c693c0: Preparing
      b0d071df1063: Preparing
      90d1009ce6fe: Waiting
      denied: Token exchange failed for project 'example-project-20181120'. Access denied.


      The system is Ubuntu 16.04 with the latest version of gcloud 225.0.0, as of this writing. The account I auth'ed with has role roles/owner.



      Inconsistency with GCP Console



      I notice that if I follow the same flow through GCP Console, I can docker push successfully:




      1. Create a new GCP project via GCP Console

      2. Create a service account with roles/owner via GCP Console

      3. Download JSON key for service account

      4. Enable container registry API via GCP Console

      5. gcloud auth activate-service-account --key-file key.json

      6. gcloud config set project $PROJECT_ID

      7. gcloud auth configure-docker --quiet

      8. docker tag "$LOCAL_IMAGE_NAME" "$GCR_IMAGE_PATH" && docker push "$GCR_IMAGE_PATH"


      Result: Works as expected. Successfully pushes docker image to gcr.io.



      Other attempts



      I also tried using gcloud auth login as my @gmail.com account, then using that account to create a service account with gcloud, but that gets the same denied error:



      SERVICE_ACCOUNT_NAME=test-service-account
      gcloud iam service-accounts create "$SERVICE_ACCOUNT_NAME"
      KEY_FILE="${HOME}/key.json"
      gcloud iam service-accounts keys create "$KEY_FILE"
      --iam-account "${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
      gcloud projects add-iam-policy-binding "$PROJECT_ID"
      --member "serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
      --role roles/owner
      gcloud auth activate-service-account --key-file="${HOME}/key.json"

      docker push "$GCR_IMAGE_PATH"


      Result: denied: Token exchange failed for project 'example-project-20181120'. Access denied.










      share|improve this question
















      I've discovered a flow that works through GCP console but not through the gcloud CLI.



      Minimal Repro



      The following bash snippet creates a fresh GCP project and attempts to push an image to gcr.io, but fails with "access denied" even though the user is project owner:



      gcloud auth login

      PROJECT_ID="example-project-20181120"
      gcloud projects create "$PROJECT_ID" --set-as-default
      gcloud services enable containerregistry.googleapis.com
      gcloud auth configure-docker --quiet

      mkdir ~/docker-source && cd ~/docker-source
      git clone https://github.com/mtlynch/docker-flask-upload-demo.git .

      LOCAL_IMAGE_NAME="flask-demo-app"
      GCR_IMAGE_PATH="gcr.io/${PROJECT_ID}/flask-demo-app"
      docker build --tag "$LOCAL_IMAGE_NAME" .
      docker tag "$LOCAL_IMAGE_NAME" "$GCR_IMAGE_PATH"
      docker push "$GCR_IMAGE_PATH"


      Result



      The push refers to repository [gcr.io/example-project-20181120/flask-demo-app]
      02205dbcdc63: Preparing
      06ade19a43a0: Preparing
      38d9ac54a7b9: Preparing
      f83363c693c0: Preparing
      b0d071df1063: Preparing
      90d1009ce6fe: Waiting
      denied: Token exchange failed for project 'example-project-20181120'. Access denied.


      The system is Ubuntu 16.04 with the latest version of gcloud 225.0.0, as of this writing. The account I auth'ed with has role roles/owner.



      Inconsistency with GCP Console



      I notice that if I follow the same flow through GCP Console, I can docker push successfully:




      1. Create a new GCP project via GCP Console

      2. Create a service account with roles/owner via GCP Console

      3. Download JSON key for service account

      4. Enable container registry API via GCP Console

      5. gcloud auth activate-service-account --key-file key.json

      6. gcloud config set project $PROJECT_ID

      7. gcloud auth configure-docker --quiet

      8. docker tag "$LOCAL_IMAGE_NAME" "$GCR_IMAGE_PATH" && docker push "$GCR_IMAGE_PATH"


      Result: Works as expected. Successfully pushes docker image to gcr.io.



      Other attempts



      I also tried using gcloud auth login as my @gmail.com account, then using that account to create a service account with gcloud, but that gets the same denied error:



      SERVICE_ACCOUNT_NAME=test-service-account
      gcloud iam service-accounts create "$SERVICE_ACCOUNT_NAME"
      KEY_FILE="${HOME}/key.json"
      gcloud iam service-accounts keys create "$KEY_FILE"
      --iam-account "${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
      gcloud projects add-iam-policy-binding "$PROJECT_ID"
      --member "serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
      --role roles/owner
      gcloud auth activate-service-account --key-file="${HOME}/key.json"

      docker push "$GCR_IMAGE_PATH"


      Result: denied: Token exchange failed for project 'example-project-20181120'. Access denied.







      docker google-cloud-platform gcloud






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 21 '18 at 10:45







      mtlynch

















      asked Nov 21 '18 at 10:34









      mtlynchmtlynch

      2,26531613




      2,26531613
























          1 Answer
          1






          active

          oldest

          votes


















          0














          I tried to reproduce the same error using bash snippet you provided, however it successfully built the ‘flask-demo-app’ container registry image for me. I used below steps to reproduce the issue:



          Step 1: Use account which have ‘role: roles/owner’ and ‘role: roles/editor’



          Step 2: Created bash script using your given snippet



          Step 3: Added ‘gcloud auth activate-service-account --key-file skey.json’ in script to authenticate the account



          Step 4: Run the bash script



          Result : It created the ‘flask-demo-app’ container registry image



          This leads me to believe that there might be an issue with your environment which is causing this error for you. To troubleshoot this you could try running your code on a different machine, a different network or even on the Cloud Shell.






          share|improve this answer
























          • Thanks for investigating, Amit! I can get it to work if I create a service account as well, but my expectation is that it should also work under the root account (my gmail.com root account for GCP). In your repro, you created a separate service account. Can you do it under your root gmail account?

            – mtlynch
            Nov 24 '18 at 15:49













          • Hi sorry for late reply. Yes,I have tried with my root account which have the same permissions and it worked as well.

            – Amit S
            Nov 29 '18 at 22:27











          • Not sure what's going on then. I just tried again with gcloud 226 and got the same Access denied result with both the root account and the service account I created with gcloud.

            – mtlynch
            Dec 2 '18 at 6:39











          • Based on the information given, it would appropriate to investigate this further. If you would like a deeper look into this issue, it would be my recommendation to create a private issue on Public Issue Tracker. Using Issue tracker will allow Google support agents to investigate the details of your Google Cloud Platform environment and determine whether this is intended behaviour or not for the specified product.

            – Ying Li
            Dec 6 '18 at 18:55











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53410165%2fdocker-push-to-gcr-io-fails-with-denied-token-exchange-failed-for-project%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          I tried to reproduce the same error using bash snippet you provided, however it successfully built the ‘flask-demo-app’ container registry image for me. I used below steps to reproduce the issue:



          Step 1: Use account which have ‘role: roles/owner’ and ‘role: roles/editor’



          Step 2: Created bash script using your given snippet



          Step 3: Added ‘gcloud auth activate-service-account --key-file skey.json’ in script to authenticate the account



          Step 4: Run the bash script



          Result : It created the ‘flask-demo-app’ container registry image



          This leads me to believe that there might be an issue with your environment which is causing this error for you. To troubleshoot this you could try running your code on a different machine, a different network or even on the Cloud Shell.






          share|improve this answer
























          • Thanks for investigating, Amit! I can get it to work if I create a service account as well, but my expectation is that it should also work under the root account (my gmail.com root account for GCP). In your repro, you created a separate service account. Can you do it under your root gmail account?

            – mtlynch
            Nov 24 '18 at 15:49













          • Hi sorry for late reply. Yes,I have tried with my root account which have the same permissions and it worked as well.

            – Amit S
            Nov 29 '18 at 22:27











          • Not sure what's going on then. I just tried again with gcloud 226 and got the same Access denied result with both the root account and the service account I created with gcloud.

            – mtlynch
            Dec 2 '18 at 6:39











          • Based on the information given, it would appropriate to investigate this further. If you would like a deeper look into this issue, it would be my recommendation to create a private issue on Public Issue Tracker. Using Issue tracker will allow Google support agents to investigate the details of your Google Cloud Platform environment and determine whether this is intended behaviour or not for the specified product.

            – Ying Li
            Dec 6 '18 at 18:55
















          0














          I tried to reproduce the same error using bash snippet you provided, however it successfully built the ‘flask-demo-app’ container registry image for me. I used below steps to reproduce the issue:



          Step 1: Use account which have ‘role: roles/owner’ and ‘role: roles/editor’



          Step 2: Created bash script using your given snippet



          Step 3: Added ‘gcloud auth activate-service-account --key-file skey.json’ in script to authenticate the account



          Step 4: Run the bash script



          Result : It created the ‘flask-demo-app’ container registry image



          This leads me to believe that there might be an issue with your environment which is causing this error for you. To troubleshoot this you could try running your code on a different machine, a different network or even on the Cloud Shell.






          share|improve this answer
























          • Thanks for investigating, Amit! I can get it to work if I create a service account as well, but my expectation is that it should also work under the root account (my gmail.com root account for GCP). In your repro, you created a separate service account. Can you do it under your root gmail account?

            – mtlynch
            Nov 24 '18 at 15:49













          • Hi sorry for late reply. Yes,I have tried with my root account which have the same permissions and it worked as well.

            – Amit S
            Nov 29 '18 at 22:27











          • Not sure what's going on then. I just tried again with gcloud 226 and got the same Access denied result with both the root account and the service account I created with gcloud.

            – mtlynch
            Dec 2 '18 at 6:39











          • Based on the information given, it would appropriate to investigate this further. If you would like a deeper look into this issue, it would be my recommendation to create a private issue on Public Issue Tracker. Using Issue tracker will allow Google support agents to investigate the details of your Google Cloud Platform environment and determine whether this is intended behaviour or not for the specified product.

            – Ying Li
            Dec 6 '18 at 18:55














          0












          0








          0







          I tried to reproduce the same error using bash snippet you provided, however it successfully built the ‘flask-demo-app’ container registry image for me. I used below steps to reproduce the issue:



          Step 1: Use account which have ‘role: roles/owner’ and ‘role: roles/editor’



          Step 2: Created bash script using your given snippet



          Step 3: Added ‘gcloud auth activate-service-account --key-file skey.json’ in script to authenticate the account



          Step 4: Run the bash script



          Result : It created the ‘flask-demo-app’ container registry image



          This leads me to believe that there might be an issue with your environment which is causing this error for you. To troubleshoot this you could try running your code on a different machine, a different network or even on the Cloud Shell.






          share|improve this answer













          I tried to reproduce the same error using bash snippet you provided, however it successfully built the ‘flask-demo-app’ container registry image for me. I used below steps to reproduce the issue:



          Step 1: Use account which have ‘role: roles/owner’ and ‘role: roles/editor’



          Step 2: Created bash script using your given snippet



          Step 3: Added ‘gcloud auth activate-service-account --key-file skey.json’ in script to authenticate the account



          Step 4: Run the bash script



          Result : It created the ‘flask-demo-app’ container registry image



          This leads me to believe that there might be an issue with your environment which is causing this error for you. To troubleshoot this you could try running your code on a different machine, a different network or even on the Cloud Shell.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 23 '18 at 19:50









          Amit SAmit S

          234




          234













          • Thanks for investigating, Amit! I can get it to work if I create a service account as well, but my expectation is that it should also work under the root account (my gmail.com root account for GCP). In your repro, you created a separate service account. Can you do it under your root gmail account?

            – mtlynch
            Nov 24 '18 at 15:49













          • Hi sorry for late reply. Yes,I have tried with my root account which have the same permissions and it worked as well.

            – Amit S
            Nov 29 '18 at 22:27











          • Not sure what's going on then. I just tried again with gcloud 226 and got the same Access denied result with both the root account and the service account I created with gcloud.

            – mtlynch
            Dec 2 '18 at 6:39











          • Based on the information given, it would appropriate to investigate this further. If you would like a deeper look into this issue, it would be my recommendation to create a private issue on Public Issue Tracker. Using Issue tracker will allow Google support agents to investigate the details of your Google Cloud Platform environment and determine whether this is intended behaviour or not for the specified product.

            – Ying Li
            Dec 6 '18 at 18:55



















          • Thanks for investigating, Amit! I can get it to work if I create a service account as well, but my expectation is that it should also work under the root account (my gmail.com root account for GCP). In your repro, you created a separate service account. Can you do it under your root gmail account?

            – mtlynch
            Nov 24 '18 at 15:49













          • Hi sorry for late reply. Yes,I have tried with my root account which have the same permissions and it worked as well.

            – Amit S
            Nov 29 '18 at 22:27











          • Not sure what's going on then. I just tried again with gcloud 226 and got the same Access denied result with both the root account and the service account I created with gcloud.

            – mtlynch
            Dec 2 '18 at 6:39











          • Based on the information given, it would appropriate to investigate this further. If you would like a deeper look into this issue, it would be my recommendation to create a private issue on Public Issue Tracker. Using Issue tracker will allow Google support agents to investigate the details of your Google Cloud Platform environment and determine whether this is intended behaviour or not for the specified product.

            – Ying Li
            Dec 6 '18 at 18:55

















          Thanks for investigating, Amit! I can get it to work if I create a service account as well, but my expectation is that it should also work under the root account (my gmail.com root account for GCP). In your repro, you created a separate service account. Can you do it under your root gmail account?

          – mtlynch
          Nov 24 '18 at 15:49







          Thanks for investigating, Amit! I can get it to work if I create a service account as well, but my expectation is that it should also work under the root account (my gmail.com root account for GCP). In your repro, you created a separate service account. Can you do it under your root gmail account?

          – mtlynch
          Nov 24 '18 at 15:49















          Hi sorry for late reply. Yes,I have tried with my root account which have the same permissions and it worked as well.

          – Amit S
          Nov 29 '18 at 22:27





          Hi sorry for late reply. Yes,I have tried with my root account which have the same permissions and it worked as well.

          – Amit S
          Nov 29 '18 at 22:27













          Not sure what's going on then. I just tried again with gcloud 226 and got the same Access denied result with both the root account and the service account I created with gcloud.

          – mtlynch
          Dec 2 '18 at 6:39





          Not sure what's going on then. I just tried again with gcloud 226 and got the same Access denied result with both the root account and the service account I created with gcloud.

          – mtlynch
          Dec 2 '18 at 6:39













          Based on the information given, it would appropriate to investigate this further. If you would like a deeper look into this issue, it would be my recommendation to create a private issue on Public Issue Tracker. Using Issue tracker will allow Google support agents to investigate the details of your Google Cloud Platform environment and determine whether this is intended behaviour or not for the specified product.

          – Ying Li
          Dec 6 '18 at 18:55





          Based on the information given, it would appropriate to investigate this further. If you would like a deeper look into this issue, it would be my recommendation to create a private issue on Public Issue Tracker. Using Issue tracker will allow Google support agents to investigate the details of your Google Cloud Platform environment and determine whether this is intended behaviour or not for the specified product.

          – Ying Li
          Dec 6 '18 at 18:55




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53410165%2fdocker-push-to-gcr-io-fails-with-denied-token-exchange-failed-for-project%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Can a sorcerer learn a 5th-level spell early by creating spell slots using the Font of Magic feature?

          Does disintegrating a polymorphed enemy still kill it after the 2018 errata?

          A Topological Invariant for $pi_3(U(n))$