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
を実行しました。
注意:以下のすべてのdocker-credential-gcr
はdocker-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
成功するはずです。
docker-credential-gcloud
の問題を直接解決する方法を発見したことはありませんでしたが、次のことで私は立ち上がって実行しました。警告:以下は、既存のdockerイメージをすべて削除し、gcloudユーティリティをインストールします:
gcloud components install docker-credential-gcr
、docker-credential-gcr configure-docker
。screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.AMD64-linux/tty
umount /var/lib/docker/overlay2
rm -rf /var/lib/docker
それは本当にHomebrew Caskの何かのようです。 caskをアンインストールしてから、手動で tarボールのダウンロード を実行し、そこに記載されているパッケージ化されたインストールスクリプトを実行して、Google Cloud SDKを再インストールしました。
docker-credential-gcloud
は私のパスにあります:
$ which docker-credential-gcloud
/Users/moritz/google-cloud-sdk/bin/docker-credential-gcloud
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