我想用普通 docker login
对于正常的东西,但对于 ecr,我想使用教程中提到的 credHelpers
https://docs.docker.com/engine/reference/commandline/login/#credential-helpers
但看起来它告诉我替换整个文件
~/.docker/config.json 与
{
"credHelpers": {
"aws_account_id.dkr.ecr.region.amazonaws.com": "ecr-login"
}
}
但我的文件已经有这个 connetnt,我不想破坏东西
{
"auths": {
"registry.gitlab.com": {
"auth": "fdfdfdfdfd"
}
}
}
我可以做类似的事情吗
{
"auths": {
"registry.gitlab.com": {
"auth": "fdfdfdfdfd"
}
},
"credHelpers": {
"dfdfdfdfd.dkr.ecr.region.amazonaws.com": "ecr-login"
}
}
最佳答案
如 Configuration files 中所见,事实并非如此:您可以同时拥有 credHelper 和登录信息(不在同一个域中)
所以你可以做你想做的,可能会手动将你的 credHelper 信息添加到配置文件中。
Issue 41提到:
I've been able to get credsStore to work fine, with the addition of auths
{
"auths" : {
"registry.gitlab.com": { "auth": "fdfdfdfdfd" },
"[aws_account_id].dkr.ecr.[region].amazonaws.com" : {}
},
"credsStore" : "ecr-login"
}
所以你可以在
auths
中列出带有凭据或没有凭据的 URL(空 {}
)。后者将由凭证助手管理(如 awslabs/amazon-ecr-credential-helper
)imdibiji报告,in the comments ,必须使用以下格式来避免:
error: ERRO[0000] Error parsing the serverURL
error="docker-credential-ecr-login can only be used with
Amazon Elastic Container Registry."
serverURL="index.docker.io/v1"
格式:
{
"auths": {
"index.docker.io/v1": {"auth": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" } },
"credHelpers": { "XXXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com": "ecr-login" }
}
关于amazon-web-services - 我如何使用 ecr 与来自其他注册表的正常 docker 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49932911/