我看到~/.dockercfg
有您的登录凭据,但它是您的电子邮件,而不是您的用户名。我看到运行docker login
显示您的用户名并提示您更改它。但是,您可以将您的用户名放入构建脚本中吗?
问问题
29043 次
3 回答
8
现代 Docker 的更新。
似乎docker info
不再包含用户名。相反,我学会了通过jq
. 我没有在每一个上都试过这个credStore
,但是对于我在 macOS 和 Linux 上检查过的那些,这是可行的。
# line breaks added for readability; this also works as a oneliner
docker-credential-$(
jq -r .credsStore ~/.docker/config.json
) list | jq -r '
. |
to_entries[] |
select(
.key |
contains("docker.io")
) |
last(.value)
'
[奖金] 显示您的凭证助手的全部内容
在这种情况下,我选择了 docker-credential-desktop,但它应该适用于任何一个。您可以像我在前面的代码块中所做的那样,从 Docker 配置中提取您的凭证助手。
docker-credential-desktop list | \
jq -r 'to_entries[].key' | \
while read; do
docker-credential-desktop get <<<"$REPLY";
done
于 2019-11-11T03:30:48.060 回答
0
这可以提取它,但从技术上讲,这是一个竞争条件。
username="$(sed 's/.*(//;s/).*//' <(docker login & sleep 1; kill %1))"
当然还有更好的东西。
于 2015-03-29T07:32:21.277 回答