问题标签 [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.
docker - aws ecs中docker容器之间通过rabbitmq进行通信
我的团队正在开发一个包含 20 个微服务的应用程序,这将部署在 aws ecs ec2 实例中。我计划在集群中启动 3 个 aws ec2 实例。每个微服务都有它的任务定义和服务。
构建 docker 容器,推送到 aws ecr,然后使用 Jenkinsfile 通过 jenkins 部署到 ecs。在 taskdefinition json 文件中,我将主机端口设置为 0,这样每个 docker 容器主机端口都是随机的,如果我们将所需的服务计数增加到 2 或更多,则不会有任何端口冲突。
我猜同一任务定义上的容器可以使用链接进行通信,但在我的情况下,我们无法预测 docker 容器在哪个实例上。
如果我们在不同的服务器上使用 rabbitmq,它如何与不同的微服务通信?我在任务定义中使用网络模式作为“默认网络”,我应该将其更改为 awsvpc 吗?
jenkins - ecr 中的 elasticbeanstalk 和 docker 映像存在问题
我在 ECR 中有一个 docker 映像,我想使用 beanstalk 进行部署。我不断得到
在我的 Jenkins 中,我已经包围了我的 eb 命令(在 shell 中)
脚本 { withAWS(credentials:'aws-credentials') {
我什至给了这个用户 AmazonEC2ContainerRegistryFullAccess 看看是否有帮助,但没有
我的 Dockerrun.aws.json 里面有这个
amazon-web-services - 如何修复 AWS docker pull
我在从 AWS 的存储库中提取 docker 时遇到问题。
我总是有这个错误:
来自守护进程的错误响应:拒绝 [repository name] 的 pull 访问,repository 不存在或可能需要 'docker login'</p>
我确实从本地机器成功地将图像推送到存储库中。现在在服务器上,我需要从存储库中提取它并运行它。我使用 SSH 命令和 .pem 密钥登录到 AWS ubuntu 服务器。之后,我使用这些命令登录并拉取:
aws ecr get-login --no-include-email --region eu-central-1
docker pull [Image URI from repository name]
我可以在 ECR->Repositories 中看到我的图像。登录似乎成功,它在我运行后返回令牌。我在 Windows 上使用 git bash 来完成所有这些工作。
当我运行 docker images 时,我看不到存储库中的图像,它应该只有在 pull 之后才存在?
我究竟做错了什么?
amazon-web-services - AWS ECR GetAuthorizationToken 问题
我有 Jenkins 设置,用于将我的 docker 映像部署到 Amazon ECR 存储库。
我在我的 AWS 账户中为 IAM 用户启用了 2FA。我已将所有管理策略附加到我的 IAM 用户。我正在按照以下命令将我的 docker 映像源推送到 Amazon ECR 存储库。
参考链接:https ://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/
詹金斯代码:
我在部署到 Amazon ECR 时遇到了这个问题。
“调用 GetSessionToken 操作时发生错误 (AccessDenied):无法使用会话凭据调用 GetSessionToken”
“调用 GetSessionToken 操作时发生错误 (AccessDenied):MultiFactorAuthentication 失败,无法验证 MFA 代码”
amazon-web-services - 无法通过“docker pull”从单独的帐户访问 ECR 存储库
我正在尝试允许一个 AWS 账户(下面称为“第二个”)在另一个 AWS 账户(下面称为“第一个”)的 ECR 存储库中提取图像。
我正在关注这些文件:
- https://docs.aws.amazon.com/AmazonECR/latest/userguide/RepositoryPolicyExamples.html(设置权限)
- https://aws.amazon.com/premiumsupport/knowledge-center/secondary-account-access-ecr/(获取令牌)
我已将以下权限添加到 ECR 存储库:
然后我运行这个命令:eval "$(aws ecr get-login --no-include-email --region us-east-1 --profile second --registry-ids <second> <first>)"
我得到了这个结果:
我将商店更改为config.json
临时只是为了确保我可以看到身份验证已按预期添加到文件中,它是:
最后我运行:docker pull <first>.dkr.ecr.us-east-1.amazonaws.com/<repo>:<tag>
并得到这个结果:
我已经三次检查了所有帐号是否正确,回购肯定在那里。如果我使用相同的get-login
命令登录,我可以拉它,但是--profile first
.
我不知道还能尝试什么才能拉出这张图片!
Principal
将ECR 权限更改为"AWS": "arn:aws:iam::<second>:user/<user>"
没有任何区别。
amazon-web-services - 如何通过 AWS EKS 在 ECR 中使用 Docker 映像
我创建了 EKS 集群。我在 ECR 中也有 docker 映像。我不确定如何在 YAML 的 pod 定义中使用 docker 映像。
是否需要秘密提供凭据?或 EKS IAM 角色应该拥有 ECR 的权限?
对于 ECR 中的图像,是否需要更改权限?
amazon-web-services - CodePipeline:如何将 ECR 与 Elastic Beanstalk 集成?
我正在尝试将 ECR 和 Elastic Beanstalk 与以下 CodePipeline 设置相结合:
- 来源:代码提交
- Build :
buildspec.yml
构建 docker 镜像并将其推送到 ECR 存储库 - 部署:弹性豆茎
请注意,第 2 步不包含任何工件,它只是通过使用从源代码构建新图像docker build -t <my-image> .
并将其推送到具有最新标签的 ECR。
我的问题是:
- 如何从第 3 步触发 beanstalk 以使用最新的 ECR 图像?
- 步骤 1/2 中应包括哪些工件(如果有)?
- 工件是否
Dockerrun.aws.json
每次都指向 ECR 图像文件?
- 替代方法:我是否应该将整个源代码部署到 beanstalk 并让它使用包中的 Dockerfile 来构建它?
- 如果是这样 - 我在哪里可以看到图像的构建过程?
- 有没有办法从源代码中选择不同的 Dockerfile?
amazon-web-services - AWS Elastic Beanstalk Docker 来自 ECR 错误“Dockerrun.aws.json 中未指定 Docker 映像”
我正在尝试将 Docker 映像从 AWS ECR 部署到 Elastic Beanstalk。我已经为 S3 和 ECR 设置了 Elastic Beanstalk 所需的所有权限。这些服务之间的通信似乎很好,但是在尝试启动 Elastic Beanstalk 环境时出现以下错误:
No Docker image specified in either Dockerfile or Dockerrun.aws.json. Abort deployment.
[Instance: i-01cf0bac1863e4eda] Command failed on instance. Return code: 1 Output: No Docker image specified in either Dockerfile or Dockerrun.aws.json. Abort deployment. Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/03build.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.
我正在上传一个Dockerrun.aws.json
指向 ECR 上图像的单曲。下面是我的Dockerrun.aws.json
文件:
docker 映像确实存在于 ECR 上containerDefinitions
Name
字段中指定的位置。
我在这里错过了什么吗?
amazon-web-services - 从“aws ecr get-login”获取结果时出现问题
给出以下命令时出现以下错误。
错误
我的管理员已授予我访问此“GetAuthorizationToken”资源的权限。
我认为问题很可能是 'arn:aws:iam::314xxxx91079:user/git' 用户被用于此命令。当我登录到 aws 控制台时,我看到我的用户名 (IAM) 如下。
如何使“获取登录”以使用此用户名而不是用户/git。我对 aws cli 很陌生,这个命令恰好是构建步骤之一。
amazon-web-services - 是否可以在不使用 docker login 的情况下从 ECR 中提取图像
我有一个运行 docker 的 ECR 和 EC2 实例。我想做的是不先做就拉图像docker login
。
有可能吗?如果是,我应该将哪种策略附加到 EC2 实例和/或 ECR 存储库?我做了很多实验,但没有成功。
请 - 没有关于如何使用 aws get-login 的建议。我的目标是通过使用 IAM 策略/角色来摆脱它。