问题标签 [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 - 如何管理到集群中 EC2 实例中相应服务的映射?
我想知道是否有办法确定任务将在集群中的哪个 EC2 实例上运行?
我在 Amazon ECS 中有一个 EC2 实例集群,我在该集群上运行多个服务。
当我使用新任务更新服务时,有时任务在 EC2 实例上运行而没有任务运行,但有时它在 EC2 实例上运行,任务已在其上运行。我想让每个 EC2 实例上运行的任务保持一致,因为我需要知道 IP 地址才能将请求映射到适当的 EC2 实例。
有没有办法解决这个问题?
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 对我有用。
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 高山脉
我希望有人知道出了什么问题。
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
值保持不变,即使在删除并重新创建秘密之后也是如此。这对我来说有点不直观,我应该如何更新我的秘密?
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 错误。
terraform - AWS ECS 优化的容器日志通过 Terraform 移动到 cloudwatch 日志
我正在尝试将 AWS ECS 容器任务日志移动到云手表,我已经为“Logdriver”配置了 IAM 策略和 Terraform 任务,我没有将任何容器集中日志放入 Cloudwatch>>
配置.JSON>>>
ecs.tf>>
amazon-web-services - Halyard - 如何使用 --password-command 选项?
关于Halyard,
我想使用--password-command
选项来刷新 Amazon ECR 授权令牌。如果您有使用此选项的经验,请教我。
谢谢!
docker - 比较 Docker 中构建的本地和远程映像
我正在尝试根据 Dockerfile 的内容编写一个用于简单标记 docker 图像的脚本,基本上类似于“自动版本控制”。
目前的流程是:
- 检查 Docker 存储库中的最新版本(我使用的是 AWS ECR)
- 获取该图像的摘要
- 在本地从 Dockerfile 构建镜像
- 比较来自远程图像和本地图像的摘要
现在问题来了。本地构建的图像没有RepoDigest
我想要比较的图像,因为它还没有在存储库中。
这是错误:
Template parsing error: template: :1:2: executing "" at <index .RepoDigests 0>: error calling index: index out of range: 0
我能想到的另一种方法是拉远程图像,构建本地图像并比较层,如果层相同,则不采取任何行动,如果它们不同 = 新版本,我可以发出新标签并推送图像。我不太确定这些层对于这种方式是否可靠。
另一种可能的方法是使用一些临时标签构建图像,例如pointer
,无论如何推送,如果标签与最新版本相同,则不发布新版本并停在那里。这意味着pointer
存储库中的某处总会有标签。(我也认为这可能是latest
标签的定义?)
这是我用于构建图像的脚本: