我想使用普通docker login
作为普通的东西但是对于ecr我想在教程中提到的credHelpers
https://docs.docker.com/engine/reference/commandline/login/#credential-helpers
但看起来它告诉我要替换整个文件
〜/ .docker / config.json with
{
"credHelpers": {
"aws_account_id.dkr.ecr.region.amazonaws.com": "ecr-login"
}
}
但是我的文件已经有了这个版本,而且我不想破坏东西
{
"auths": {
"registry.gitlab.com": {
"auth": "fdfdfdfdfd"
}
}
}
我可以做点什么吗
{
"auths": {
"registry.gitlab.com": {
"auth": "fdfdfdfdfd"
}
},
"credHelpers": {
"dfdfdfdfd.dkr.ecr.region.amazonaws.com": "ecr-login"
}
}
答案 0 :(得分:1)
如Configuration files所示,情况并非如此:您可以同时拥有credHelper和登录信息(不在同一个域中)
所以你可以做你想做的事情,可能会手动将你的credHelper信息添加到配置文件中。
Issue 41提及:
通过添加auths,我已经能够使credsStore工作正常
{
"auths" : {
"registry.gitlab.com": { "auth": "fdfdfdfdfd" },
"[aws_account_id].dkr.ecr.[region].amazonaws.com" : {}
},
"credsStore" : "ecr-login"
}
因此,您可以在auths
个网址中列出凭据或无凭据(空{}
)。后者将由凭证助手(如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" }
}
答案 1 :(得分:0)
我需要与 Docker Hub 并行使用的 AWS ECR,因为我使用免费的 Docker 映像以及 ECR 中我自己的映像。不得不这样写配置,不然老是提示“docker-credential-ecr-login can only be used with Amazon Elastic Container Registry”:
{
"auths": {
"https://index.docker.io/v1/": {}
},
"credHelpers": {
"<account>.dkr.ecr.<region>.amazonaws.com": "ecr-login"
}
}
效果很好。