3

我正在尝试从我的 ecr 存储库以及使用 Nomad 的 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 图像,但我部署的 sidecar 或非 ecr 图像(例如 postgres)所需的图像不会以相同的错误拉取。有没有其他人遇到同样的问题?

4

3 回答 3

2

我有同样的问题,如果你只是使用这个节,我不确定是否有办法解决它:

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 替换为您的区域。

于 2020-12-03T00:50:11.733 回答
0

对于最近 nomad 版本中的混合 ecr 和非 ecr 工作负载,将 auth 配置指向仅包含该credHelpers节的 docker 配置似乎完全没问题:

/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"
    }
}
于 2021-10-28T09:45:00.543 回答
0

我发现的解决方法是添加:

"auth_soft_fail": true 

将此添加为配置的一部分。

如果有凭证助手,Nomad 无法提取其他图像

于 2021-12-11T05:56:35.063 回答