在对gcloud和docker进行了最新更新之后,我无法访问我的Google容器存储库中的图像。我在本地运行时:gcloud auth configure-docker按照更新gcloud之后的说明,我收到以下消息:
gcloud auth configure-docker
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。
which docker-credential-gcloud
docker-credential-gcloud not found
我没有其他与gcloud相关的路径问题,并且我一生无法解决如何将docker-credential- gcloud安装/添加到路径。这是我安装的(通过显示gcloud version):
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
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
我还运行source /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud- sdk/path.zsh.inc了原始gcloud安装。
source /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud- sdk/path.zsh.inc
注意 :docker-credential-gcr以下所有内容均可替换为docker-credential- gcloud。我认为这只是gcloud的不同版本,我可能错了。
docker-credential-gcr
docker-credential- gcloud
我也使用Homebrew Cask来安装gcloud。我安装docker-credential-gcr了
$ gcloud components install docker-credential-gcr
然后就像你说的,which docker-credential-gcr什么也没给你。
which docker-credential-gcr
所以我跑去which gcloud发现在gcloud中有一个符号链接/usr/local/bin。第一次安装gcloud时,此符号链接由Homebrew创建。现在docker- credential-gcr不是由Homebrew而是由gcloud本身安装的,因此没有符号链接。
which gcloud
/usr/local/bin
docker- credential-gcr
我打电话给我readlink /usr/local/bin/gcloud,发现gcloud已安装在中/usr/local/Caskroom/google-cloud- sdk/latest/google-cloud-sdk/bin/。
readlink /usr/local/bin/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
它应该成功。