web-dev-qa-db-ja.com

`docker-credential-gcloud`はシステムPATHにありません

Gcloudとdockerの最新の更新後、Googleコンテナリポジトリの画像にアクセスできません。ローカルで実行すると:gcloud auth configure-docker gcloudを更新した後の指示に従って、次のメッセージが表示されます。

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.
gcloud credential helpers already registered correctly.

which docker-credential-gcloudを実行すると、docker-credential-gcloud not foundが返されます。

他にgcloud関連のパスの問題はなく、私の人生では、docker-credential-gcloudをパスにインストール/追加する方法がわかりません。これが私がインストールしたものです(gcloud versionで表示):

Google Cloud SDK 197.0.0
beta 2017.09.15
bq 2.0.31
container-builder-local
core 2018.04.06
docker-credential-gcr
gsutil 4.30

Docker CEバージョン18.03.0-ce-mac60(23751)もあります。

これが私の$ PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbinです

元のgcloudインストールでもsource /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.incを実行しました。

31
ZaxR

注意:以下のすべてのdocker-credential-gcrdocker-credential-gcloudに置き換えることができます。 gcloudの異なるバージョンだと思うのですが、間違っているかもしれません。

Homebrew Caskを使用してgcloudもインストールしました。 docker-credential-gcrをインストールしました

$ gcloud components install docker-credential-gcr

そして、あなたが言ったように、which docker-credential-gcrは何も与えませんでした。

そこでwhich gcloudを実行して、/usr/local/binにgcloudへのシンボリックリンクがあることを確認しました。このシンボリックリンクは、最初にgcloudをインストールしたときにHomebrewによって作成されます。 docker-credential-gcrはHomebrewではなくgcloud自体によってインストールされるようになったため、シンボリックリンクはありません。

readlink /usr/local/bin/gcloudを呼び出しましたが、gcloudが/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin/にインストールされていることがわかりました。

次に:

$ ls /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin

そこにdocker-credential-gcrがリストされているはずです。

私はそれを/usr/local/binにリンクしました:

$ ln -s /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin/docker-credential-gcr /usr/local/bin/

次に実行します:

$ docker-credential-gcr configure-docker

成功するはずです。

42
Xiwen Li

docker-credential-gcloudの問題を直接解決する方法を発見したことはありませんでしたが、次のことで私は立ち上がって実行しました。警告:以下は、既存のdockerイメージをすべて削除し、gcloudユーティリティをインストールします:

  1. gcloud components install docker-credential-gcr
  2. 端末を完全に再起動します
  3. docker-credential-gcr configure-docker
  4. screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.AMD64-linux/tty

  5. umount /var/lib/docker/overlay2

  6. rm -rf /var/lib/docker
  7. 端末を完全に再起動します。
2
ZaxR

それは本当にHomebrew Caskの何かのようです。 caskをアンインストールしてから、手動で tarボールのダウンロード を実行し、そこに記載されているパッケージ化されたインストールスクリプトを実行して、Google Cloud SDKを再インストールしました。

docker-credential-gcloudは私のパスにあります:

$ which docker-credential-gcloud
/Users/moritz/google-cloud-sdk/bin/docker-credential-gcloud
0
anothernode

GoogleクラウドビルドからエンジンVMインスタンスにSSHしようとしたときに問題が発生したので、

steps:
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['compute', 'ssh',
         '--project', '$PROJECT_ID',
         '--zone', 'asia-southeast1-b',
         '--strict-Host-key-checking=no',
         'username@instance-1',
         '--command' ,'sh start.sh'

私のstart.sh

#!/bin/sh

echo "Started: $(date --iso-8601=seconds)"

docker pull gcr.io/aaa/bbbc/cccc

echo "Finished: $(date --iso-8601=seconds)"

問題はHow to set PATH when running a ssh command?でした

https://unix.stackexchange.com/questions/332532/how-to-set-path-when-running-a-ssh-command

0
vanduc1102