标签: aws-ecr

在env中找到的部分凭据缺失:AWS_SECRET_ACCESS_KEY

刚刚使用我的AWS Access和密钥在我的计算机上配置了AWS CLI.当我尝试使用AWS CLI时,虽然它给了我这个错误.

Partial credentials found in env, missing: AWS_SECRET_ACCESS_KEY
Run Code Online (Sandbox Code Playgroud)

我去了〜/ .aws/config,确实有那些凭据,包括AWS Secret Key,所以我不确定为什么它会对我发出嘎嘎声.

amazon-web-services secret-key aws-cli aws-ecr

8
推荐指数
2
解决办法
6688
查看次数

CannotPullContainerError:来自守护进程的错误响应:拒绝 ECR 存储库映像的拉取访问,存储库不存在或可能需要“docker 登录”

我在 SourceAccount 的 ECR Repo 中推送了一个 docker 镜像。

我已经在 SourceAccount 中部署了一个代码管道。

当该代码管道运行时,它会在 TargetAccount 中部署 ECS 堆栈。在该堆栈中,ECS 任务是使用来自 SourceAccount 的上述镜像通过容器创建的。但是,这些任务仍处于挂起状态并最终转移到停止状态。他们显示以下错误:

Status reason   CannotPullContainerError: Error response from daemon: pull access denied for <SourceAccountId>.dkr.ecr.<Region>.amazonaws.com/<RepoName>, repository does not exist or may require 'docker login'
Run Code Online (Sandbox Code Playgroud)

请告知如何从 SourceAccount ECR 中提取图像并在 TargetAccount 中创建 ECS 任务。

笔记:

1) 当我在 TargetAccount 的 ECR 中推送相同的图像时,一切正常。ECS 任务仅在尝试从其他帐户拉取映像时无法运行。

2) 堆栈回滚,出现以下错误:

Service arn:aws:ecs:<Region>:<TargetAccount>:service/<ServiceName> did not stabilize.
Run Code Online (Sandbox Code Playgroud)

amazon-ecs aws-cloudformation docker aws-codepipeline aws-ecr

8
推荐指数
1
解决办法
9503
查看次数

如何使用Jenkins将Docker容器从Amazon ECR自动部署到Kubernetes

这是我们的环境:

  1. 我有一个在Amazon上运行的Kubernetes集群。
  2. 在Amazon上运行的Jenkins CI / CD,可连接到私有GitLab并将我们的服务构建为Docker映像。
  3. 存储我们的Docker映像的Amazon ECR。

我的问题:

  1. Jenkins管道将新建的映像推送到ECR后,如何将映像从ECR自动部署到Kubernetes(作为Pod)?
  2. 我可以在詹金斯管道中做到这一点吗?我读了很多材料,但是找不到如何做。

还有一个像Keel这样的第三方工具,但它不支持Amazon ECR(ECR的Webhook问题)。

任何帮助,将不胜感激。

continuous-deployment jenkins kubernetes devops aws-ecr

7
推荐指数
2
解决办法
9168
查看次数

来自 AWS ECR 的 Jenkins 管道 Docker 代理

我需要在 Docker 中作为代理执行 Jenkins 管道,

Docker 镜像位于 AWS ECR 中,

如何通过 AWS ECR 进行身份验证以为代理提取映像?

jenkins-pipeline aws-ecr

7
推荐指数
2
解决办法
2052
查看次数

Docker 推送到 Amazon ECR 减慢或冻结

最近,我docker push对远程 ECR 注册表的命令变得非常非常缓慢,有时可能会冻结。

它长时间(或永远)挂在Preparing、 或Waiting、 或中途Pushing、 或 100% Pushing

我已经在不同的连接中尝试过这个,升级 Docker 守护程序(适用于 Mac),重新启动它,施展神秘的咒语,但我无法让它像以前那样工作。

我知道这可能不是提出这个问题的最佳地点,但我已经用尽了所有其他资源。有没有人遇到过这个问题并解决了?

macos docker amazon-ecr aws-ecr

6
推荐指数
1
解决办法
1172
查看次数

kubectl pod 无法拉下 AWS ECR 映像

第1步 sudo $(aws ecr get-login --no-include-email --region xx-xxxx-x)

第2步 curl -LSs https://github.com/fermayo/ecr-k8s-secret/raw/master/gen-secret.sh | bash -

第 3 步 kubectl describe secret aws-ecr-credentials

Name:         aws-ecr-credentials
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  kubernetes.io/dockerconfigjson

Data

.dockerconfigjson:  32 bytes
Run Code Online (Sandbox Code Playgroud)

第四步 kubectl describe pod x

警告 5s kubelet 失败,ip-10-46-250-151 无法拉取映像“my-account.dkr.ecr.us-east-1.amazonaws.com/my-image:latest”:rpc 错误:代码 = 未知desc = 来自守护进程的错误响应:获取https://my-account.dkr.ecr.us-east-1.amazonaws.com/my-image/latest:没有基本的身份验证凭据

为什么pod拉不下图片?

kubernetes aws-ecr

6
推荐指数
2
解决办法
6028
查看次数

无法通过docker pull从单独的帐户访问ECR存储库

我试图允许一个AWS帐户(以下称为“第二个”)在另一个AWS帐户(以下称为“第一个”)的ECR存储库中提取图像。

我正在关注这些文件:

我向ECR存储库添加了以下权限:

{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Sid": "AllowCrossAccountPull",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<second>:root"
      },
      "Action": [
        "ecr:BatchCheckLayerAvailability",
        "ecr:BatchGetImage",
        "ecr:GetDownloadUrlForLayer"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

然后运行以下命令: eval "$(aws ecr get-login --no-include-email --region us-east-1 --profile second --registry-ids <second> <first>)"

我得到这个结果:

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /Users/libby/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
WARNING! Using --password via …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services docker aws-iam aws-ecr

6
推荐指数
1
解决办法
1431
查看次数

无法将大型 Docker 映像上传到 AWS ECR

我正在创建一个 mongodb docker 映像,其中包含我的组织主数据库的备份生产数据。但是,当我尝试向上推此图像时,我遇到了此错误。

[root@ip-1-2-3-4 inf-tool-docker-mongo]# docker push 1234567.dkr.ecr.us-east-1.amazonaws.com/inf-data-mongo:2.6-latest
The push refers to repository [1234567.dkr.ecr.us-east-1.amazonaws.com/inf-data-mongo]
e429ba9ffbf8: Pushing [==================================================>]  87.35GB/87.35GB
fbd84d2027f9: Pushing [==================================================>]  87.35GB/87.35GB
4f8f8804b65d: Pushed
140b510fa705: Pushed
a2f3704a5dbf: Pushed
c362c0ad1002: Pushed
16817a92834f: Pushed
5a637bac3303: Pushed
32f938d6fb4c: Pushed
70d8dfa3043e: Pushed
denied: Adding this part to the layer with upload id '1234567890-12345-12345-123456-12345' in the repository with name 'inf-data-mongo' in registry with id '1234567890' exceeds the maximum allowed size of a layer which is '10737418240'
Run Code Online (Sandbox Code Playgroud)

我的图像大小约为 85GB-100GB,因为其中包含大量数据。Docker 映像运行良好,但当我将其推送到 AWS ECR 时,出现此错误。

我在这里看到了服务限制页面:

https://docs.aws.amazon.com/AmazonECR/latest/userguide/service_limits.html …

amazon-ec2 amazon-web-services docker aws-ecr

5
推荐指数
1
解决办法
5003
查看次数

Elastic Beanstalk 不会自动更新 ECR 中的图像

我在 Dockerrun.aws.json 中有 \n "Update": "true" \n当我更新 ECR 中的映像时,它应该自动更新 EC2 ionstance 中的映像和容器。

\n\n

但是,当我在推送新映像后 ssh 进入实例时,我仍然看到容器和映像未更新。

\n\n

[root@ip-10-20-60-125 ~]# docker ps\n容器 ID 图像命令创建状态端口名称\nc8e3bab8da13 258e7bc272bd "./graphhopper.sh we\xe2\x80\xa6" 8 天前 8 天 8989 /tcpender_mayer

\n\n

[root@ip-10-20-60-125 ~]# docker images\n存储库标签映像 ID 创建大小\naws_beanstalk/current-app 最新 258e7bc272bd 8 天前 813MB\nopenjdk 8-jdk b8d3f94869bb 6 周前 625MB

\n\n

Dockerrun.aws.json 有这个

\n\n
{\n  "AWSEBDockerrunVersion": "1",\n  "Authentication": {\n    "Bucket": "xxxxx",\n    "Key": "xxxxx"\n  },\n\n  "Image": {\n    "Name": "213074117100.dkr.ecr.us-east-1.amazonaws.com/xxxxx:latest",\n    "Update": "true"\n  },\n  "Ports": [\n    {\n      "ContainerPort": "8989"\n    }\n  ],\n  "Volumes": [\n    {\n …
Run Code Online (Sandbox Code Playgroud)

amazon-elastic-beanstalk aws-ecr

5
推荐指数
1
解决办法
710
查看次数

如何在每次部署时不使用 TypeScript 中的 aws-cdk 重建 DockerImageAsset?

我的应用程序是一个 Python API,我将其打包为 Docker 映像并与 ECS Fargate(Spot 实例)一起使用。下面的代码有效。

我的问题是每次部署时它都会重建整个映像 - 这非常耗时(下载所有依赖项、制作映像、上传等)。我希望它自己重用上传到 ECR 的完全相同的图像aws-cdk

当我不触摸应用程序的代码而只是对堆栈进行更改时,有没有办法(环境变量或其他)让我跳过这个?

#!/usr/bin/env node
import * as cdk from "@aws-cdk/core"
import * as ecs from "@aws-cdk/aws-ecs"
import * as ec2 from "@aws-cdk/aws-ec2"
import * as ecrassets from "@aws-cdk/aws-ecr-assets"

// See https://docs.aws.amazon.com/cdk/api/latest/docs/aws-ecs-readme.html
export class Stack extends cdk.Stack {
    constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
        super(scope, id, props)

        /**
         * Repository & Image
         */

        const apiDockerImage = new ecrassets.DockerImageAsset(
            this,
            `my-api-image`,
            {
                directory: `.`,
                exclude: [`cdk.out`, `cdk`, …
Run Code Online (Sandbox Code Playgroud)

amazon-ecs aws-fargate aws-ecr aws-cdk

5
推荐指数
1
解决办法
1470
查看次数