问题标签 [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 投票
2 回答
123 浏览

amazon-web-services - 如何管理到集群中 EC2 实例中相应服务的映射?

我想知道是否有办法确定任务将在集群中的哪个 EC2 实例上运行?

我在 Amazon ECS 中有一个 EC2 实例集群,我在该集群上运行多个服务。

当我使用新任务更新服务时,有时任务在 EC2 实例上运行而没有任务运行,但有时它在 EC2 实例上运行,任务已在其上运行。我想让每个 EC2 实例上运行的任务保持一致,因为我需要知道 IP 地址才能将请求映射到适当的 EC2 实例。

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

0 投票
1 回答
1044 浏览

powershell - Gitlab CI - Docker 推送到 AWS ECR

我今天花了5个小时没有任何帮助。这是场景/设置。

1) Windows Server - Gitlab-runner 正在运行,构建并推送到服务器上的 docker 注册表以进行开发分支

2) 对于主分支,我想将 docker 镜像推送到 AWS ECR。

3) 我已经安装了 AWS CLI 并添加到构建服务器上的全局 PATH 变量中。我可以运行命令并成功推送到 AWS ECR。

4)问题 - 当我从 CI .yml 文件执行相同的脚本时,它失败了。我的 gitlab-runner 在“cmd”“shell”模式下运行,我的脚本格式相同。但要获取 AWS 登录令牌,我必须执行以下命令:

我可以从 cmd 提示符运行上述命令,但是当运行器尝试执行此命令时,它无法识别“aws”。

“aws”的路径是“C:\Program Files\Amazon\AWSCLI\bin\aws.exe”

该怎么办 ?是否有人尝试使用 cmd shell 脚本在 Windows 平台上登录 AWS ECR。

更新:您认为以下任何一项会起作用吗?我现在无法访问我的服务器,明天早上我将对其进行测试。

回答:

选项 4 对我有用。

0 投票
1 回答
3244 浏览

amazon-web-services - AWS Windows Powershell ECR 登录

我是 AWS 和 Docker 的新手。我正在尝试设置 AWS ECR 和 docker 并尝试使用 windows powershell 检索 ECR 登录。我正在尝试使用命令 -

Invoke-Expression -Command (aws ecr get-login) 这给了我错误在此处输入图像描述

我的问题是它试图自己使用 ccuser。我不认为我已将其配置为使用此用户。我使用 AmazonEC2ContainerRegistryFullAccess 创建了一个单独的用户。如何将其配置为 AWS Powershell 执行命令的用户?

0 投票
4 回答
17260 浏览

amazon-ecs - 尽管使用 AWS ubuntu 容器,但我得到 AWS ECR 退出状态 255

我正在尝试在 AWS 代码构建中构建一个 docker 容器,作为将容器部署到 ECR 的一种方式,但是我收到了这个错误。

在此处输入图像描述

此命令在 buildspec.yml 文件上运行,使用 aws/codebuild/ubuntu-base:14.04 并启用此标志,如果您想构建 Docker 映像或希望您的构建获得提升的权限。

日志文件如下:

0 投票
1 回答
1255 浏览

docker - 使用 amazon-ecr-credential-helper 时“没有基本身份验证凭据”

我正在尝试设置amazon-ecr-credential-helper 但是no basic auth credentials当我尝试设置时总是得到docker pull

当我使用aws ecr get-login然后docker login ...我没有问题。

我按照他们的 README 文件中的说明使用 docker 映像创建了二进制文件。

在故障排除部分,他们说应该存储一个日志文件,~/.ecr/log但该/.ecr文件夹不存在。

规格:Docker 版本 18.06.1-ce,构建 e68fc7a

aws-cli/1.16.31 Python/2.7.15 Darwin/17.4.0 botocore/1.12.21

MacOS 高山脉

我希望有人知道出了什么问题。

0 投票
1 回答
569 浏览

kubernetes - Kubernetes 是否缓存 docker-registry 机密?

我们正在从运行 Kubernetes 的私有 ECR (AWS) 中提取图像,该 Kubernetes 随 Docker for Mac (minikube) 一起提供。我们有一个秘密叫做aws-cred. 我使用以下方法创建了它:

在我的部署中与此一起:

SUPER_LONG_TOKEN 我从跑步中得到:

当然,令牌会在几个小时后过期,我试图刷新秘密。首先我删除了这个秘密:

然后基本上重复上面的步骤,获取一个新的令牌。但是我注意到,我仍然无法从我们的 ECRAWS ECR: no basic auth credentials中提取 minikube 中的错误。

当我重复该过程,但我秘密重命名为 时aws-creds-2,一切正常。我怀疑存在某种缓存。事实上,我使用以下方法验证了这一点:

我可以看到该password值保持不变,即使在删除并重新创建秘密之后也是如此。这对我来说有点不直观,我应该如何更新我的秘密?

0 投票
1 回答
6245 浏览

amazon-web-services - AWS ECS Fargate 从跨账户 ECR 存储库中提取映像

我有 2 个 AWS 账户: - 具有 ECR 存储库的账户 A。- 具有运行 Fargate 的 ECS 集群的账户 b。

我在账户 A 中创建了一个与账户 B 具有信任关系的“跨账户”角色,我还为该角色附加了“AmazonEC2ContainerRegistryPowerUser”策略。

我通过将账户 B 的 ID 和“跨账户”角色添加到存储库策略来授予对账户 A 中 ECR 存储库的访问权限。

我将一个策略附加到 Fargate“TaskExecutionRole”,允许 Fargate 承担“跨账户”角色。

当尝试在账户 B 中部署 Fargate 任务并引用账户 A 中的图像时,我收到 500 错误。

0 投票
1 回答
612 浏览

terraform - AWS ECS 优化的容器日志通过 Terraform 移动到 cloudwatch 日志

我正在尝试将 AWS ECS 容器任务日志移动到云手表,我已经为“Logdriver”配置了 IAM 策略和 Terraform 任务,我没有将任何容器集中日志放入 Cloudwatch>>

配置.JSON>>>

ecs.tf>>

0 投票
1 回答
387 浏览

amazon-web-services - Halyard - 如何使用 --password-command 选项?

关于Halyard
我想使用--password-command选项来刷新 Amazon ECR 授权令牌。如果您有使用此选项的经验,请教我。
谢谢!

0 投票
0 回答
946 浏览

docker - 比较 Docker 中构建的本地和远程映像

我正在尝试根据 Dockerfile 的内容编写一个用于简单标记 docker 图像的脚本,基本上类似于“自动版本控制”。

目前的流程是:

  1. 检查 Docker 存储库中的最新版本(我使用的是 AWS ECR)
  2. 获取该图像的摘要
  3. 在本地从 Dockerfile 构建镜像
  4. 比较来自远程图像和本地图像的摘要

现在问题来了。本地构建的图像没有RepoDigest我想要比较的图像,因为它还没有在存储库中。

这是错误:

Template parsing error: template: :1:2: executing "" at <index .RepoDigests 0>: error calling index: index out of range: 0

我能想到的另一种方法是拉远程图像,构建本地图像并比较层,如果层相同,则不采取任何行动,如果它们不同 = 新版本,我可以发出新标签并推送图像。我不太确定这些层对于这种方式是否可靠。

另一种可能的方法是使用一些临时标签构建图像,例如pointer,无论如何推送,如果标签与最新版本相同,则不发布新版本并停在那里。这意味着pointer存储库中的某处总会有标签。(我也认为这可能是latest标签的定义?)

这是我用于构建图像的脚本: