繁体   English   中英

Docker 推送到 AWS ECR 私有仓库失败,JSON

[英]Docker push to AWS ECR private repo failing with malformed JSON

我正在试用 AWS ECR 并将新标签推送到我们的私有存储库。

它是这样的:

export DOCKER_REGISTRY=0123123123123.dkr.ecr.us-east-1.amazonaws.com
export TAG=0.1
docker build -t vendor/app-name .
`aws ecr get-login --region us-east-1`" # generates docker login
docker tag vendor/app-name $DOCKER_REGISTRY/vendor/app-name:$TAG
docker push $DOCKER_REGISTRY/vendor/app-name:$TAG

登录有效,标签已创建,我看到它与docker images ,但推送神秘地失败。

The push refers to a repository [0123123123123.dkr.ecr.us-east-1.amazonaws.com/vendor/app-name] (len: 2)
b1a1d76b9e52: Pushing [==================================================>]     32 B/32 B
Error parsing HTTP response: unexpected end of JSON input: ""

很可能是配置错误,但我不知道如何从中获得更多 output 。 该命令没有调试级别选项,没有其他日志,而且我无法拦截网络流量,因为它似乎已加密。

遇到了同样的问题。 对我来说,确保我推送的 IAM 用户拥有ecr:BatchCheckLayerAvailability权限清除了这一点。

我原本打算采用“仅推送”策略,但没有意识到成功推送需要此权限。

您需要的最低政策:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Action": "ecr:GetAuthorizationToken",
      "Resource": "*"
    },
    {
      "Sid": "",
      "Effect": "Allow",
      "Action": [
        "ecr:UploadLayerPart",
        "ecr:PutImage",
        "ecr:InitiateLayerUpload",
        "ecr:CompleteLayerUpload",
        "ecr:BatchCheckLayerAvailability"
      ],
      "Resource": "arn:aws:ecr:<your region>:<your account id>:repository/<your repository name>"
    }
  ]
}

除了@Ethan 的回答:我试图找到将 docker 映像推送到 AWS 注册表所需的最小权限集。 截至今天,最小集合是:

    {
        "Sid": "PushToEcr",
        "Effect": "Allow",
        "Action": [
            "ecr:BatchCheckLayerAvailability",
            "ecr:CompleteLayerUpload",
            "ecr:GetAuthorizationToken",
            "ecr:InitiateLayerUpload",
            "ecr:PutImage",
            "ecr:UploadLayerPart"
        ],
        "Resource": "*"
    }

据我了解Resource必须是*因为其中一些操作在其他情况下不起作用。 欢迎改进!

如果您有一个虚拟环境文件夹 - 我的文件夹是.venv ,请尝试将其删除。 再次构建并推送您的图像。 这对我有用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM