Voici une exigence très simple. J'ai préparé une image docker sur mon Mac et je souhaite la pousser vers GCR. J'ai essayé les étapes ci-dessous.
The push refers to repository [gcr.io/[project-id]/gcloud] 0141ab2d5898: Retrying in 1 second 522a3d37badb: Retrying in 1 second 0b1ee8a19f71: Retrying in 1 second 0cb89ac95352: Retrying in 1 second c27a33c2a613: Retrying in 2 seconds 1416f891501a: Waiting 2edebac67fd2: Waiting cff7468ca6ac: Waiting 7d105a69bdfc: Waiting 8607e6c66303: Waiting dc87e12495f4: Waiting c3c5e6948ef3: Waiting 5f70bf18a086: Waiting b2f56e492d5b: Waiting 861512eb6ef5: Waiting 876201329b4b: Waiting unknown: Token exchange failed for project '[project-id]'. Bad Request.
gcloud auth configure-docker docker login gcr.io docker push gcr.io/[project-id]/gcloud:latest
Quelqu'un peut-il suggérer ce problème?
3 Réponses :
Avez-vous essayé gcloud auth activate-service-account [SERVICE_ACCOUNT]
à la place de docker login gcr.io
Je pense que c'est un meilleur moyen que la connexion au docker
.
oui, j'ai lié pour activer infra SA au lieu de mon propre compte. Impossible de pousser avec la même erreur.
Consultez le guide et vérifiez tout de la section "Avant de commencer".
De plus, vous devez ajouter le nom du registre et le nom de l'image comme balise à votre image. Vous pouvez trouver plus de détails ici et ici .
Merci pour vos suggestions. J'ai déjà lu ces deux documents ... Mais je ne m’ai pas aidé ... Et j’ai aussi vérifié IAM.
Pourriez-vous mettre à jour votre premier message et y inclure tous les contrôles et résultats? Il semble que vous ayez manqué un petit détail, mais c'est difficile à trouver sans informations supplémentaires.
bien sûr, le fera bientôt
J'ai eu le même problème avec la condition préalable ajoutée selon laquelle il n'y avait pas encore d'image existante dans le registre.
Si aucune image n'existe encore, le backend de stockage GCR (un bucket GCS) n'existe pas encore.
Assurez-vous que ce bucket peut être créé par l'utilisateur connecté à gcloud
. Dans mon cas, il y avait une politique organisationnelle interdisant les buckets multirégionaux, qui est le type de bucket nécessaire pour GCR.
Vous pouvez vérifier si cela est la cause première de votre problème en accédant aux activités du projet, où vous verrez un échec de création de bucket.
Essayez de découvrir cette réponse serverfault.com/a/961093
merci, j'ai essayé avant ... mais le problème existe toujours
Le compte que vous utilisez dispose-t-il d'une autorisation d'administrateur de stockage? Et quel est le type d'emplacement de votre
artefacts. [Project_id] ...
bucket?Votre système python utilise-t-il python3? J'ai rencontré des problèmes où gcloud ne fonctionne qu'avec python2 et cela apparaît comme une erreur lorsque j'essaie de pousser une image dans docker.
@EmilGi. oui, il a l'autorisation d'administrateur de stockage. comment déterminer le type d'emplacement si le gcr est vide
oui, j'utilise py3 sur mon mac. Souhaitez-vous publier votre erreur ici?
Vérifiez les politiques de votre organisation. Il se peut que vous ne soyez pas autorisé à créer des buckets multirégionaux dans GCS. Lorsqu'il est poussé vers GCR, il essaie de créer un tel seau et échoue s'il n'est pas autorisé à le faire. Vérifiez ceci cloud.google.com/container-registry/docs/ …