刚刚使用我的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,所以我不确定为什么它会对我发出嘎嘎声.
我在 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
这是我们的环境:
我的问题:
还有一个像Keel这样的第三方工具,但它不支持Amazon ECR(ECR的Webhook问题)。
任何帮助,将不胜感激。
我需要在 Docker 中作为代理执行 Jenkins 管道,
Docker 镜像位于 AWS ECR 中,
如何通过 AWS ECR 进行身份验证以为代理提取映像?
最近,我docker push对远程 ECR 注册表的命令变得非常非常缓慢,有时可能会冻结。
它长时间(或永远)挂在Preparing、 或Waiting、 或中途Pushing、 或 100% Pushing。
我已经在不同的连接中尝试过这个,升级 Docker 守护程序(适用于 Mac),重新启动它,施展神秘的咒语,但我无法让它像以前那样工作。
我知道这可能不是提出这个问题的最佳地点,但我已经用尽了所有其他资源。有没有人遇到过这个问题并解决了?
第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拉不下图片?
我试图允许一个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) 我正在创建一个 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 …
我在 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\nDockerrun.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) 我的应用程序是一个 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) aws-ecr ×10
docker ×4
amazon-ecs ×2
kubernetes ×2
amazon-ec2 ×1
amazon-ecr ×1
aws-cdk ×1
aws-cli ×1
aws-fargate ×1
aws-iam ×1
devops ×1
jenkins ×1
macos ×1
secret-key ×1