如何让 gcloud.auth.docker-helper 摆脱挂入非相关 docker 构建的习惯?

Joe*_* M. 12 docker gcloud

当然我已经gcloud安装了 CLI。但是因为当我调用docker build与任何 gcloud 操作无关的日志序言时

$ docker build -t ...
ERROR: (gcloud.auth.docker-helper) You do not currently have an active account selected.
Please run:

  $ gcloud auth login

to obtain new credentials, or if you have already logged in with a
different account:

  $ gcloud config set account ACCOUNT

to select an already authenticated account to use.
Sending build context to Docker daemon  5.346MB
Step 1/8 : FROM node:alpine
...
Run Code Online (Sandbox Code Playgroud)

我如何禁用 gcloud.auth.docker-helper,b/c 无关,同时保持 gcloud 安装?

PS Bonus 如果有人有指针/背景这个底层机制是什么,以及在 docker 和/或 gcloud 方面记录的这种行为在哪里

Wae*_*mas 16

这似乎是docker 登录配置的一部分。特别是在.docker/config.json

您可以通过运行来检查它:cat [User_Home_Directory]/.docker/config.json 示例:

{
        "auths": {},
        "credHelpers": {
                "asia.gcr.io": "gcr",
                "eu.gcr.io": "gcr",
                "gcr.io": "gcr",
                "marketplace.gcr.io": "gcloud",
                "staging-k8s.gcr.io": "gcr",
                "us.gcr.io": "gcr"
        }
}
Run Code Online (Sandbox Code Playgroud)

如果您不想使用任何需要 docker 向 gcloud 或 gcr 进行身份验证的东西(例如 Container Registry),那么您可以从 中删除凭证助手,.docker/config.json如下所示:

{
        "auths": {},
        "credHelpers": {
        }
}
Run Code Online (Sandbox Code Playgroud)

对于 Docker 文档,您可以检查:

您还可以查看Container Registry Authentication methods,它解释了 docker 如何使用 gcloud 进行身份验证。