问题标签 [aws-ecr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
46 回答
139074 浏览

amazon-web-services - 无法将图像推送到 Amazon ECR - 因“没有基本身份验证凭证”而失败

我正在尝试将 docker 映像推送到 Amazon ECR 注册表。我正在使用 docker 客户端 Docker 版本 1.9.1,构建a34a1d5. 我aws ecr get-login --region us-east-1用来获取 docker 登录凭据。然后我使用这些凭据成功登录,如下所示:

但是当我尝试推送我的图像时,我收到以下错误:

我确保 aws 用户具有正确的权限。我还确保存储库允许该用户推送到它。只是为了确保这不是问题,我将注册表设置为允许所有用户完全访问。没有什么能改变"no basic auth credentials"错误。我不知道如何开始调试,因为所有流量都是加密的。

更新

所以当我意识到我的问题的根本原因时,我有一点 Homer Simpson D'Oh 的感觉。我可以访问多个 AWS 账户。即使我aws configure用来为设置存储库的帐户设置凭据,aws cli 实际上也在使用环境变量AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY. 因此,当我这样做时,aws ecr get-login它返回了错误帐户的登录信息。我没有注意到帐号是不同的,直到我现在才回去尝试一些建议的答案。当我删除环境变量时,一切正常。我猜这个故事的座右铭是,如果您遇到此错误,请确保您登录的存储库与您应用于图像的标签匹配。

0 投票
6 回答
32589 浏览

docker - docker login 未知速记标志:'e'

我刚刚更新了我的 docker 版本并发现了该命令

不再工作了。得到错误:

未知的速记标志:-e 中的“e”。似乎 docker 不再支持 -e 标志了。

有没有办法解决这个问题?

已安装版本:

0 投票
1 回答
734 浏览

docker - Docker swarm 不时更新私有存储库凭据

我正在使用 docker swarm,并将图像存储在AWS ECR中。我正在使用自动缩放,所以实例一直在上升和下降。当节点启动时,它们加入集群并且 docker swarm 部署容器。

在我创建服务后的几个小时内它运行良好,然后在某些时候 docker 停止将容器部署到节点,直到我手动去那里运行docker swarm update --with-registry-auth myservice. 它部署了所有容器并工作了几个小时,然后再次停止。

我正在使用aws ecr credential helper登录注册表,它一直运行良好。但我的猜测是,docker 不会不时自动更新凭据,因为每个令牌仅在几个小时内有效。

我需要做什么才能让 docker swarm 不时自动更新凭据?我想我可以docker service update --with-registry-auth每小时在 cron 上运行一次,但我不确定这是否是正确的路径。

0 投票
3 回答
23212 浏览

amazon-web-services - 在 env 中找到的部分凭证,缺少:AWS_SECRET_ACCESS_KEY

刚刚使用我的 AWS 访问和密钥在我的计算机上配置了 AWS CLI。当我尝试使用 AWS CLI 时,它给了我这个错误。

我去了 ~/.aws/config,果然这些凭证都在那里,包括 AWS 密钥,所以我不确定它为什么对我大喊大叫。

0 投票
1 回答
407 浏览

docker-registry - 将 docker 注册表从 azure 复制到 aws

我正在寻找从 azure 到 aws 的私有 docker 注册表的复制解决方案(托管容器服务 aws ecr,或者我自己的私有托管 docker 注册表,如果需要,希望不是)。是否有内置的 docker 注册表选项可以做到这一点?或其他已知的解决方案?或者也许是托管在 AWS - 东部的另一个注册提供商?这次我的 google foo 让我失望了。

请注意:这是一个关于复制的问题,而不是关于一次性迁移的问题。我们的主注册表仍然在 azure 容器注册表中

0 投票
4 回答
16905 浏览

jenkins - 如何使用 Jenkins 将 Docker 容器从 Amazon ECR 自动部署到 Kubernetes

这是我们的环境:

  1. 我有一个在 Amazon 上运行的 Kubernetes 集群。
  2. Jenkins CI/CD 在 Amazon 上运行,连接到私有 GitLab 并将我们的服务构建为 Docker 映像。
  3. 存储我们的 Docker 映像的 Amazon ECR。

我的问题:

  1. 一旦 Jenkins 管道将新建的镜像推送到 ECR,我如何将镜像从 ECR 自动部署到 Kubernetes(作为 pod)?
  2. 我可以在 Jenkins 管道中做到这一点吗?我已经阅读了很多材料,但我找不到应该怎么做。

还有一个像Keel这样的 3rd 方工具,但它不支持 Amazon ECR(ECR 的 Webhook 问题)。

任何帮助,将不胜感激。

0 投票
1 回答
821 浏览

kubernetes - 需要有关如何使 Spinnaker 与 aws ecr 配合使用的建议?

我正在使用 aws-ecr 在 K8s 中设置 Spinnaker。我的设置和步骤是:

在 AWS 方面:

  1. 添加策略 ecr-pull、ecr-push 和 ecr-generate-token
  2. 将策略附加到角色

三角帆设置:

  1. 使用以下设置修改values.yaml :```accounts:

    • 名称:my-ecr 地址:https ://123456xxx.dkr.ecr.my-region.amazonaws.com 存储库:
    • 123456xxx.dkr.ecr..amazonaws.com/spinnaker-test-project```
  2. 带注释的 clouddriver.yaml:部署以使用创建的角色(通​​过在 pod 规范的注释中引用角色名称来使用 pod 中的 IAM 角色)

但它不起作用,cloudrvier 方面的错误是:

.d.r.p.a.DockerRegistryImageCachingAgent : Could not load tags for 1234xxxxx.dkr.ecr.<my_region>.amazonaws.com/spinnaker-test-project in https://1234xxxxx.dkr.ecr.<my_region>.amazonaws.com

想得到一些帮助或建议我缺少什么,谢谢

0 投票
5 回答
2090 浏览

amazon-web-services - 为 ECR 中的所有存储库设置一个生命周期策略

我很好奇是否有一种方法可以设置一个通用的生命周期策略,该策略将应用于 ECR 中的所有存储库?

目前,据我了解,没有办法做到这一点。

我正在考虑的一种方法是使用生命周期策略的 JSON 定义并使用 AWS CLI 将其应用于所有存储库(可以有点自动化)。但是这个东西应该在每次创建一个新的存储库时运行,这会增加复杂性。

0 投票
3 回答
1483 浏览

amazon-web-services - 使用 JavaScript 开发工具包 --no-include-email 标志的 AWS ECR 登录

我正在尝试运行此 AWS CLI 命令:

aws ecr get-login --no-include-email --region <my-region>

但是使用带有方法的 JavaScript SDKnew AWS.ECR(..).getAuthorizationToken但我收到了这个错误:

Error response from daemon: login attempt to https://xxxxx.dkr.ecr.<my-region>.amazonaws.com/v2/ failed with status: 400 Bad Request

据我了解,我需要使用一些--no-include-email与 CLI 命令中的参数相等的标志,但我找不到如何使用 JavaScript SDK 设置它。

这是我的代码:

有谁知道该怎么做?

0 投票
0 回答
468 浏览

batch-file - 如何使用批处理命令评估表达式结果

在我编写的批处理文件中,我想登录到 aws ecr 以下拉 docker 图像。要登录,我需要运行

返回

登录的实际命令。所以我需要评估aws ecr get-login --region=xxx.

在 shell 脚本中,我可以将表达式放在里面${ ... },但是如何在批处理文件中执行此操作?


附言。我试过call aws ecr get-login --region=xxx了,但这似乎不起作用。