问题:docker-credential-gcloud不在系统路径中

在对 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 的符号链接。这个符号链接是 Homebrew 在您首先安装 gcloud 时创建的。现在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

它应该成功。

Logo

云原生社区为您提供最前沿的新闻资讯和知识内容

更多推荐