使用Terraform配置ARM64架构ECS任务定义后任务无法运行,请求排查
ECS任务拉取镜像失败问题分析
你遇到的CannotPullContainerError核心原因是任务定义指定了ARM64架构运行时,但ECR仓库中没有对应架构的ecr-repo-prod:latest镜像。ECS会根据runtimePlatform里的cpuArchitecture筛选匹配架构的镜像,若仓库中仅存在x86_64(AMD64)版本的镜像,就会触发镜像找不到的报错。
具体排查方向:
- 检查ECR仓库镜像架构:登录AWS控制台进入目标ECR仓库,查看
latest标签对应的镜像架构,确认是否存在ARM64(arm64/v8)版本的镜像。 - 验证镜像构建推送流程:如果是手动构建镜像,需确保构建时指定了ARM64架构(例如使用
docker buildx build --platform linux/arm64 -t ********.dkr.ecr.eu-central-1.amazonaws.com/ecr-repo-prod:latest --push命令),或构建多架构镜像并推送到ECR。 - 核对镜像地址正确性:确认镜像的账号ID、区域、仓库名、标签没有拼写错误,确保和ECR仓库的实际地址完全一致。
- 排查权限(优先级较低):确认ECS任务执行角色拥有拉取该ECR镜像的权限(比如附加
AmazonEC2ContainerRegistryReadOnly管理策略),不过权限问题通常会明确提示权限错误,而非镜像找不到。
内容的提问来源于stack exchange,提问作者Sarah
相关产品推荐
相关产品推荐

