问题标签 [amazon-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 投票
1 回答
2513 浏览

amazon-web-services - TeamCity:将 docker 镜像推送到 AWS ECR

TeamCity 2019.1.4使用一台服务器和三个独立的代理运行。代理和服务器都在各自的server/agent容器中运行在不同的 EC2 实例中。我希望将构建工件(docker 映像)推送到 ECR。权限是通过 IAM 角色配置的。Unauthorized推/拉时出现错误。从代理 EC2 主机手动拉取图像有效。但是从代理 EC2 容器中手动拉出会产生相同的错误。如何配置 TeamCity 代理容器以将其自身标识为主机?

PS:我试图避免的一个选项是以最有可能工作的经典模式(手动安装)运行 TeamCity 代理。

0 投票
2 回答
924 浏览

amazon-web-services - 有没有办法使用 docker manifest-list 在 ECR 中构建多架构映像?

我正在尝试使用 Amazon ECR 来存储我的图像。

现在,我希望我的 image:tag 能够与不同的操作系统和架构(如 linux/amd64、linux/arm64、windows 等)一起使用。

当我使用 docker 时这很好,但似乎我无法使其与 ECR 一起使用。

Docker 说您可以将其推送到不安全的注册表:
https ://docs.docker.com/engine/reference/commandline/manifest/

失败的命令:

此命令成功:

多平台镜像可以推送到 Docker Hub。


我想知道我们如何做到这一点。这是我的想法。如果我错了,请纠正我。

我们可以创建自己的清单文件,其中包含已放置在 ECR 存储库中的图像吗?

就像是:

现在我们有了一个名为image:multi-arch的新图像。然后我们使用这个图像并期望它根据清单自动获取目标架构。

如果我将此最终图像推送到 ECR,它会工作吗?难道我做错了什么?请随时纠正我。

0 投票
3 回答
9379 浏览

amazon-web-services - ECR 中的 Docker 图像标记

我正在使用 Jenkins 在 AWS ECR 中推送 docker 映像。

在推送图像时,我将标签提供为 $Build_Number。因此,在 ECR 存储库中,我有带有 1、2、3、4 等标签的图像。

但是当我试图从 Jenkins 作业中使用以下命令从 EC2 中提取图像时

我收到一个错误,因为没有标签为最新的图像。

在这里,我想提取最新的图像(带有标签 4)。我不能在这里硬编码标签号,因为 docker pull 命令将自动从 Jenkins 作业运行。那么我可以通过什么方式提取最新的图像呢?

0 投票
0 回答
200 浏览

amazon-web-services - 启动 Amazon EC2 Spot 实例以编程方式运行 docker 映像

我希望将一些 ECS 容器移出 ECS 集群以发现 EC2。什么是启动/停止执行 docker 映像的现货 EC2 实例的规范方法。主要原因是我希望容器有公共IP + VPC IP

我不想重新发明 ECS/kubernetes。

在用户脚本中放置一些脚本是最好的解决方案吗?如何获取 ECR 访问令牌?对我来说,它在 12-24 到期。

0 投票
1 回答
636 浏览

python - 触发 AWS Lambda 函数以扫描 ECR 存储库

我想确保为 ECR 扫描自动启用现有/新 ECR 存储库。我已经写下了 lambda 函数,但它在执行时出错。我的代码:

它似乎无法识别存储库。错误如下所示:

0 投票
1 回答
5737 浏览

amazon-web-services - 未找到图像定义文件 imagedefinitions.json

“无效的操作配置未在输入工件 ZIP 文件中找到图像定义文件 imagedefinitions.json。验证文件是否存储在管道的 Amazon S3 工件存储桶中”

收到此错误,我没有在 AWS 中使用 codebuild 并且图像直接推送到 ECR,我们使用 maven 构建该图像,我已将 imagedefinitions.json 上传到 artifi 存储桶,我还压缩了该文件,但没有任何效果,

任何人都可以提出任何建议吗

0 投票
1 回答
203 浏览

amazon-web-services - AWS Elastic Beanstalk - 使用 ECR 时,/root/.docker/config.json 未使用新凭证更新

我目前正在从 ECR 切换到 GitHub 包来托管我们的 docker 图像。经过大量的试验和错误以及no basic auth credentials拉取图像时的大量消息后,我开始通过 SSH:ing 深入挖掘 beanstalk 实例以调查实际文件。事实证明,当我使用新凭据更新 S3 存储桶中的 .dockercfg 时,这些凭据会按预期复制到/root/.dockercfgbeanstalk 上,但不会反映在/root/.docker/config.json. 此文件仅包含 ECR 凭据,而不包含 GitHub 凭据。如果我手动添加 GitHub 凭据,我可以很好地提取图像。似乎/root/.docker/config.json覆盖了/root/.dockercfg仅在部署期间存在的凭据。

我该如何解决这个问题?

编辑:

根本原因似乎/root/.docker/config.json是在使用 ECR 时创建的,并且不会由其他私有注册表身份验证更新,因为 ECR 的处理方式不同。当我设置一个从一开始就使用 GitHub 的新 beanstalk 时,一切都按预期工作。这部分/opt/elasticbeanstalk/hooks/pre/03build.sh创建文件:

0 投票
4 回答
12476 浏览

kubernetes - AWS EKS 0/1 节点可用。1 豆荚不足

我们正在尝试使用 ECR 将点网核心 API 服务部署到亚马逊 EKS。部署成功,但 Pod 处于待处理状态。以下是我们遵循的详细步骤。

紧随其后的步骤。1. 创建一个 docker 镜像 2. 将镜像推送到 ECR。该图像现在也可以在 aws 控制台中看到。// 图像看起来不错,我可以在本地使用我的 docker 运行它。

  1. 如下创建了一个 t2-micro 集群 eksctl create cluster --name net-core-prod --version 1.14 --region us-west-2 --nodegroup-name standard-workers --node-type t2.micro --nodes 1 --nodes-min 1 --nodes-max 1 --managed // 集群和节点组创建成功。// IAM 角色也被创建

  2. 使用附加的 json/yaml//net-app.json 部署了一个复制控制器 在此处输入图像描述

  3. 使用附加的 json/yaml //net-app-scv.json 部署服务 在此处输入图像描述
  4. get all 命令返回了这个。//get_all.png 得到所有 POD 始终保持 PENDING 状态。

  5. Pod describe 给出了以下结果 //describe_pod.png 描述吊舱

  6. 我们还尝试向集群 IAM 角色添加策略以包含附加的 ECR 权限。//ECR_policy.json

要点:
1. 我们使用的是 t2-micro 实例集群,因为它是 AWS 免费账户。
2.我们创建了一个linux集群,尝试推送dotnet core app。//这在我们的本地机器
3 上运行良好。集群只有 1 个节点 //-nodes 1 --nodes-min 1 --nodes-max 1

有人可以指导我们如何正确设置它。

0 投票
2 回答
679 浏览

amazon-web-services - 大三角帆 + ECR 访问

我在设置具有 ECR 访问权限的 Spinnaker 时遇到问题。

背景:我在 EKS 集群上使用 helm 安装了 spinnaker,并且我已经确认集群具有必要的 ECR 权限(通过从 clouddriver pod 中手动运行 ECR 命令)。我按照此处的说明设置 Spinnaker+ECR:https ://www.spinnaker.io/setup/install/providers/docker-registry/

问题:当我运行时:

我得到以下输出:

  • 我已确认 aws-cli 已安装在 clouddriver pod 上。而且我已经确认我可以直接从 clouddriver pod 输入密码命令,并且它成功返回了一个令牌。
  • 我还确认,如果我手动生成 ECR 令牌并且run hal config provider docker-registry account add my-ecr-registry --address $ADDRESS --username AWS --password-command "echo $MANUALLY_GENERATED_TOKEN"一切正常。所以有一些特定于密码命令的东西出错了,我不知道如何调试它。
  • 另一个奇怪的行为:如果我将密码命令简化为:hal config provider docker-registry account add some-ecr-registry --address $ADDRESS --username AWS --repositories code --password-command "aws --region us-west-2 ecr get-authorization-token",我会得到一个附加的输出,上面写着"- WARNING Password command returned non 0 return code stderr/stdout was:bash: aws: command not found". 此输出仅针对此简化命令显示。

任何有关如何调试的建议将不胜感激。

0 投票
2 回答
2023 浏览

amazon-web-services - ECR 图像推送 AWS CodeBuild 问题

COMMAND_EXECUTION_ERROR:执行命令时出错:$(aws ecr get-login --no-include-email --region us-east-1)。原因:退出状态 127

下面是我的 buildspec.yml 文件