J'ai créé une instance de VM sur GCP à l'aide d'Ubuntu 18.10. Lorsque je SSH la VM sans aucune modification et que j'essaye:
Cloud SDK on PATH: [False] Kubectl on PATH: [False] WARNING: There are old versions of the Google Cloud Platform tools on your system PATH. /usr/bin/snap
J'ai un avertissement:
sudo gcloud alpha auth configure-docker
Si j'essaye de m'authentifier avec:
sudo apt-get update && sudo apt-get install google-cloud-sdk
Je vois:
WARNING: `docker-credential-gcloud` not in system PATH.
Il semble qu'une version assez récente de gcloud soit installée:
sudo gcloud auth configure-docker
Il ne semble pas que je sois autorisé à mettre à jour gcloud sur une telle instance.
Ensuite, j'ai installé Docker et extrait une image de docker.
sudo docker tag tensorflow/serving gcr.io/xxx/tf-serving sudo docker push gcr.io/xxx/tf-serving Unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request st, follow the steps in https://cloud.google.com/container-registry/docs/advanced-authentication
Cela fonctionne très bien. Le problème est que je ne peux pas pousser l'image sur GCP Container Registry:
sudo snap install docker sudo docker pull tensorflow/serving
et dans le lien, il est expliqué que je dois exécuter:
sudo gcloud version Google Cloud SDK 230.0.0 alpha 2019.01.11 beta 2019.01.11 bq 2.0.39 core 2019.01.11 gsutil 4.35 kubectl 2019.01.11
Comment résoudre le problème? Le problème est déjà présent lorsque je SSH la VM?
WARNING: `docker-credential-gcloud` not in system PATH. gcloud's Docker credential helper can be configured but it will not work until this is corrected. WARNING: `docker` not in the system PATH. `docker` and `docker-credential-gcloud` need to be in same PATH in order to work correctly together. gcloud's Docker credential helper can be configured but it will not work until this is corrected. The following settings will be added to your Docker config file
Je peux pousser l'image sur DockerHub sans aucun problème.
J'ai essayé de réinstaller google- cloud-sdk:
sudo gcloud auth configure-docker
Mais maintenant je dois utiliser:
System PATH: [/snap/google-cloud-sdk/66/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/game s:/snap/bin] Python PATH: [/snap/google-cloud-sdk/66/lib/third_party:/snap/google-cloud-sdk/66/lib:/snap/google-cloud-sdk/66/usr/lib/python2.7/:/snap /google-cloud-sdk/66/usr/lib/python2.7/plat-x86_64-linux-gnu:/snap/google-cloud-sdk/66/usr/lib/python2.7/lib-tk:/snap/google-cloud-sdk/6 6/usr/lib/python2.7/lib-old:/snap/google-cloud-sdk/66/usr/lib/python2.7/lib-dynload] Cloud SDK on PATH: [False] Kubectl on PATH: [False] WARNING: There are old versions of the Google Cloud Platform tools on your system PATH. /usr/bin/snap
et la fin je ne peux toujours pas pousser l'image .
Cela semble être lié à un problème de chemin:
gcloud info
Une idée? J'ai suivi la documentation GCP étape par étape. Je regarde également GCP IAM pour accorder un accès à mon bucket.
Je suis nouveau sur GCP et Cloud, il me manque probablement quelque chose d'évident. Au fait, je dois créer une image Docker en utilisant un script shell, donc je dois utiliser ce type de VM car sur l'autre VM pour laquelle beaucoup de choses sont déjà pré-installées sont montées avec le drapeau "noexec". p>
3 Réponses :
le problème peut être l'installation de snap
; supprimez simplement / snap / google-cloud-sdk
du système. ou vérifiez quel gcloud
pour voir lequel est même utilisé. la version apt ne semble pas avoir ces packages de docker disponibles - et aussi, le $ PATH
ne répertorie que cette version de snap
.
ordinaire, les composants peuvent être mis à jour avec:
curl https://sdk.cloud.google.com | bash
ou répertoriés:
gcloud components install docker-credential-gcr
ou installés: p >
gcloud components list
suggère d'installer simplement la version autonome avec:
gcloud components update
après avoir supprimé le snap code > et la version
apt
, à partir du système de fichiers et de $PATH
.
gcloud semble être là: quel gcloud "/ snap / bin / gcloud" sudo ls -la / snap / bin / gcloud "lrwxrwxrwx 1 root root 23 février 2 14:32 / snap / bin / gcloud -> google-cloud-sdk .gcloud "Je ne peux pas mettre à jour ou installer des composants:" ERREUR: (gcloud.components.install) Vous ne pouvez pas effectuer cette action car cette installation du SDK Cloud est gérée par un gestionnaire de packages externe. "
sudo apt-get remove google-cloud-sdk && sudo snap remove google-cloud-sdk
devrait supprimer les deux, puis la version autonome peut être fraîchement installée - et l'ajout de composants devrait fonctionner. la version autonome est en effet moins problématique; a également eu des problèmes avec la version du gestionnaire de packages sur CentOS - car il essaie toujours de se mettre à jour, alors qu'il n'est pas autorisé de le faire - ainsi que, que seuls les composants packagés peuvent être installés.
Je vais réessayer à partir de zéro. J'ai réussi à installer la version manuellement et je vois gcloud utiliser la nouvelle version: SDK Google Cloud [232.0.0] J'ai toujours l'avertissement avec le chemin et je ne peux toujours pas pousser l'image. Je vais réessayer et utiliser vos options ci-dessus pour supprimer google-cloud-sdk, peut-être que je n'ai pas nettoyé le chemin correctement. Merci
avec vos recettes, j'ai réussi à avoir une installation propre de gcloud. Plus d'avertissement avec "gcloud auth configure-docker" mais toujours le même problème pour pousser l'image dans le référentiel de conteneurs GCP. Quelle API ou quel droit d'accès sont nécessaires pour mon bucket?
Voici ce qui fonctionne actuellement (merci à Google pour l'aide)
Configuration:
Test de docker pull / push sur GCP
maintenant cela fonctionne
Eh bien, pas une solution stable. N'a pas fonctionné sur la même VM après avoir construit la base de données! Après quelques essais et "gcloud init", cela fonctionne à nouveau. Pas une solution valable, désolé!
Le problème est que "gcloud auth print-access-token" n'est valide que pendant une courte période. C'est pourquoi cette solution n'est pas valable.
ok, maintenant j'ai une solution qui fonctionne. J'ai mis à jour la solution ci-dessus.
Le package Snap contient docker-credential-gcloud
dans / snap / google-cloud-sdk / current / bin /
. Vous pouvez créer un lien symbolique vers / usr / local / bin
en utilisant:
error: cannot perform the following tasks: - Setup manual alias "docker-credential-gcloud" => "docker-credential-gcloud" for snap "google-cloud-sdk" (cannot enable alias "docker-credential-gcloud" for "google-cloud-sdk", target application "docker-credential-gcloud" does not exist)
Après cela, pousser les images Docker vers Google Container Registry (gcr.io) fonctionne correctement.
J'ai également essayé sudo snap alias google-cloud-sdk.docker-credential-gcloud docker-credential-gcloud
pour créer un lien symbolique similaire à celui de gcloud code> lui-même. Mais cela a échoué avec l'erreur suivante:
sudo ln -s /snap/google-cloud-sdk/current/bin/docker-credential-gcloud /usr/local/bin