如何解决ECS“内部错误:无法标准化图像参考”
我们有一个 docker 镜像存储在 ECR 中,有些来自 TC 构建代理,有些来自本地开发人员机器上的构建。所有镜像都可以在本地拉取运行,但是当尝试启动构建在构建 TC 构建代理上的镜像时,我们会在 ECS 集群开始运行任务时收到以下错误。
InternalError: failed to normalize image reference "http://xxx.eu-west-1.amazonaws.com/events/name-of-contianer:tag"
我似乎无法在日志中找到任何其他信息,或在任何 ECS 文档中提及标准化错误。有没有人遇到过这个错误,甚至知道它是什么意思!
ECS 任务定义:
{
"ipcMode": null,"executionRoleArn": "arn:aws:iam::xxxxxxxxxxxx:role/ecsTaskExecutionRole","containerDefinitions": [
{
"dnsSearchDomains": null,"environmentFiles": null,"logConfiguration": null,"entryPoint": null,"portMappings": [
{
"hostPort": 80,"protocol": "tcp","containerPort": 80
}
],"command": null,"linuxParameters": null,"cpu": 0,"environment": [
{
"name": "ServiceConfiguration__BasePath","value": "/mobile-read-model"
},{
"name": "ServiceConfiguration__Version","value": "0.1.0"
}
],"resourceRequirements": null,"ulimits": null,"dnsServers": null,"mountPoints": [],"workingDirectory": null,"secrets": null,"dockerSecurityOptions": null,"memory": null,"memoryReservation": null,"volumesFrom": [],"stopTimeout": null,"image": "http://xxxxxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/events/mobile-app-read-model:0.1.0-blank-read-model0011","startTimeout": null,"firelensConfiguration": null,"dependsOn": null,"disableNetworking": null,"interactive": null,"healthCheck": {
"retries": 1,"command": [
"CMD-SHELL","curl -f http://localhost/health || exit 1"
],"timeout": 5,"interval": 30,"startPeriod": 60
},"essential": true,"links": null,"hostname": null,"extraHosts": null,"pseudoTerminal": null,"user": null,"readonlyRootFilesystem": false,"dockerLabels": null,"systemControls": null,"privileged": null,"name": "mobile-read-model"
}
],"placementConstraints": [],"memory": "512","taskRoleArn": "arn:aws:iam::xxxxxxxxxxxx:role/ecsTaskExecutionRole","compatibilities": [
"EC2","FARGATE"
],"taskDefinitionArn": "arn:aws:ecs:eu-west-1:xxxxxxxxxxxx:task-definition/mobile-app-readmodel:55","family": "mobile-app-readmodel","requiresAttributes": [
{
"targetId": null,"targetType": null,"value": null,"name": "com.amazonaws.ecs.capability.task-iam-role"
},{
"targetId": null,"name": "ecs.capability.container-health-check"
},"name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
},"name": "ecs.capability.task-eni"
},"name": "com.amazonaws.ecs.capability.docker-remote-api.1.29"
}
],"pidMode": null,"requiresCompatibilities": [
"FARGATE"
],"networkMode": "awsvpc","cpu": "256","revision": 55,"status": "ACTIVE","inferenceAccelerators": null,"proxyConfiguration": null,"volumes": []
}
解决方法
您需要从图像名称中删除 http://
。
image
属性应该是:"image": "xxxxxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/events/mobile-app-read-model:0.1.0-blank-read-model0011",
没有 http://
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。