如果凭证助手到位,Nomad 无法拉取其他图像
Nomad cannot pull other images if credential helper is in place
我正在尝试使用 Nomad 从我的 ecr 存储库以及 dockerhub 中提取图像。问题是,如果我不自己拉取这些图像,Nomad 将不会拉取它们并会报错:
Failed to find docker auth for repo "envoyproxy/envoy": docker-credential-ecr-login with input "envoyproxy/envoy" failed with stderr: exit status 1
它会很容易地拉取ECR镜像,但是我部署的sidecars或非ecr镜像所需的那些镜像,例如postgres,不会被拉取并出现同样的错误。有没有其他人遇到同样的问题?
我遇到了同样的问题,我不确定如果你只是使用这个节是否有解决办法:
plugin "docker" {
config {
auth {
helper = "ecr-login"
}
}
}
或者,我这样设置:
plugin "docker" {
config {
auth {
config = "/opt/docker.json"
}
}
}
然后在 /opt/docker.json 的文件中填充以下值:
{
"credHelpers": {
"000000000000.dkr.ecr.us-west-2.amazonaws.com": "ecr-login"
},
"auths": {
"https://index.docker.io/v1/": {}
}
}
将 000000000000 替换为您的 aws 帐户 ID,将 us-west-2 替换为您所在的地区。
对于最近的游牧版本中混合的 ecr 和非 ecr 工作负载,将 auth 配置指向 docker 配置似乎完全没问题
仅包含 credHelpers
节:
/etc/nomad.d/nomad-docker.hcl
plugin "docker" {
config {
auth {
config = "/root/.docker/config.json"
}
}
}
/root/.docker/config.json
{
"credHelpers": {
"**********.dkr.ecr.eu-central-1.amazonaws.com": "ecr-login"
}
}
我找到的解决方法是添加:
"auth_soft_fail": true
将其添加为配置的一部分。
我正在尝试使用 Nomad 从我的 ecr 存储库以及 dockerhub 中提取图像。问题是,如果我不自己拉取这些图像,Nomad 将不会拉取它们并会报错:
Failed to find docker auth for repo "envoyproxy/envoy": docker-credential-ecr-login with input "envoyproxy/envoy" failed with stderr: exit status 1
它会很容易地拉取ECR镜像,但是我部署的sidecars或非ecr镜像所需的那些镜像,例如postgres,不会被拉取并出现同样的错误。有没有其他人遇到同样的问题?
我遇到了同样的问题,我不确定如果你只是使用这个节是否有解决办法:
plugin "docker" {
config {
auth {
helper = "ecr-login"
}
}
}
或者,我这样设置:
plugin "docker" {
config {
auth {
config = "/opt/docker.json"
}
}
}
然后在 /opt/docker.json 的文件中填充以下值:
{
"credHelpers": {
"000000000000.dkr.ecr.us-west-2.amazonaws.com": "ecr-login"
},
"auths": {
"https://index.docker.io/v1/": {}
}
}
将 000000000000 替换为您的 aws 帐户 ID,将 us-west-2 替换为您所在的地区。
对于最近的游牧版本中混合的 ecr 和非 ecr 工作负载,将 auth 配置指向 docker 配置似乎完全没问题
仅包含 credHelpers
节:
/etc/nomad.d/nomad-docker.hcl
plugin "docker" {
config {
auth {
config = "/root/.docker/config.json"
}
}
}
/root/.docker/config.json
{
"credHelpers": {
"**********.dkr.ecr.eu-central-1.amazonaws.com": "ecr-login"
}
}
我找到的解决方法是添加:
"auth_soft_fail": true
将其添加为配置的一部分。