问题标签 [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.
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_ID
和AWS_SECRET_ACCESS_KEY
. 因此,当我这样做时,aws ecr get-login
它返回了错误帐户的登录信息。我没有注意到帐号是不同的,直到我现在才回去尝试一些建议的答案。当我删除环境变量时,一切正常。我猜这个故事的座右铭是,如果您遇到此错误,请确保您登录的存储库与您应用于图像的标签匹配。
docker - docker login 未知速记标志:'e'
我刚刚更新了我的 docker 版本并发现了该命令
不再工作了。得到错误:
未知的速记标志:-e 中的“e”。似乎 docker 不再支持 -e 标志了。
有没有办法解决这个问题?
已安装版本:
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 上运行一次,但我不确定这是否是正确的路径。
amazon-web-services - 在 env 中找到的部分凭证,缺少:AWS_SECRET_ACCESS_KEY
刚刚使用我的 AWS 访问和密钥在我的计算机上配置了 AWS CLI。当我尝试使用 AWS CLI 时,它给了我这个错误。
我去了 ~/.aws/config,果然这些凭证都在那里,包括 AWS 密钥,所以我不确定它为什么对我大喊大叫。
docker-registry - 将 docker 注册表从 azure 复制到 aws
我正在寻找从 azure 到 aws 的私有 docker 注册表的复制解决方案(托管容器服务 aws ecr,或者我自己的私有托管 docker 注册表,如果需要,希望不是)。是否有内置的 docker 注册表选项可以做到这一点?或其他已知的解决方案?或者也许是托管在 AWS - 东部的另一个注册提供商?这次我的 google foo 让我失望了。
请注意:这是一个关于复制的问题,而不是关于一次性迁移的问题。我们的主注册表仍然在 azure 容器注册表中
jenkins - 如何使用 Jenkins 将 Docker 容器从 Amazon ECR 自动部署到 Kubernetes
这是我们的环境:
- 我有一个在 Amazon 上运行的 Kubernetes 集群。
- Jenkins CI/CD 在 Amazon 上运行,连接到私有 GitLab 并将我们的服务构建为 Docker 映像。
- 存储我们的 Docker 映像的 Amazon ECR。
我的问题:
- 一旦 Jenkins 管道将新建的镜像推送到 ECR,我如何将镜像从 ECR 自动部署到 Kubernetes(作为 pod)?
- 我可以在 Jenkins 管道中做到这一点吗?我已经阅读了很多材料,但我找不到应该怎么做。
还有一个像Keel这样的 3rd 方工具,但它不支持 Amazon ECR(ECR 的 Webhook 问题)。
任何帮助,将不胜感激。
kubernetes - 需要有关如何使 Spinnaker 与 aws ecr 配合使用的建议?
我正在使用 aws-ecr 在 K8s 中设置 Spinnaker。我的设置和步骤是:
在 AWS 方面:
- 添加策略 ecr-pull、ecr-push 和 ecr-generate-token
- 将策略附加到角色
三角帆设置:
使用以下设置修改values.yaml :```accounts:
- 名称:my-ecr 地址:https ://123456xxx.dkr.ecr.my-region.amazonaws.com 存储库:
- 123456xxx.dkr.ecr..amazonaws.com/spinnaker-test-project```
带注释的 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
想得到一些帮助或建议我缺少什么,谢谢
amazon-web-services - 为 ECR 中的所有存储库设置一个生命周期策略
我很好奇是否有一种方法可以设置一个通用的生命周期策略,该策略将应用于 ECR 中的所有存储库?
目前,据我了解,没有办法做到这一点。
我正在考虑的一种方法是使用生命周期策略的 JSON 定义并使用 AWS CLI 将其应用于所有存储库(可以有点自动化)。但是这个东西应该在每次创建一个新的存储库时运行,这会增加复杂性。
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 设置它。
这是我的代码:
有谁知道该怎么做?
batch-file - 如何使用批处理命令评估表达式结果
在我编写的批处理文件中,我想登录到 aws ecr 以下拉 docker 图像。要登录,我需要运行
返回
登录的实际命令。所以我需要评估aws ecr get-login --region=xxx
.
在 shell 脚本中,我可以将表达式放在里面${ ... }
,但是如何在批处理文件中执行此操作?
附言。我试过call aws ecr get-login --region=xxx
了,但这似乎不起作用。