【发布时间】:2018-12-31 20:27:26
【问题描述】:
我尝试通过运行一个任务(由任务定义定义)来使用 Amazon ECS 部署和运行一个简单的 Dockerized Ruby 后端,但它无法运行我的命令并返回此错误:
CannotPullContainerError: API 错误 (400): 无效的参考格式
我尝试运行 echo "Hello" 的小入口点命令,但无论它是 exec 形式还是 shell 形式,它都会返回相同的错误。我尝试在本地终端中运行此命令,它运行良好:
$ docker-compose run job echo 'HELLO_WORLD'
HELLO_WORLD
这是我的集群任务的详细信息部分中显示的错误消息:
Status reason CannotPullContainerError: API error (400): invalid reference format
Entry point ["echo","HELLO"]
这是我的任务定义 JSON(出于安全原因隐藏某些信息):
{
"executionRoleArn": null,
"containerDefinitions": [
{
"dnsSearchDomains": null,
"logConfiguration": null,
"entryPoint": [
"echo",
"HELLO"
],
"portMappings": [],
"command": [],
"linuxParameters": null,
"cpu": 0,
"environment": [
{
"name": "RAILS_ENV",
"value": "production"
}
],
"ulimits": null,
"dnsServers": null,
"mountPoints": [],
"workingDirectory": null,
"dockerSecurityOptions": null,
"memory": 7000,
"memoryReservation": null,
"volumesFrom": [],
"image": "<ecs_image_arn>",
"disableNetworking": false,
"healthCheck": null,
"essential": true,
"links": null,
"hostname": null,
"extraHosts": null,
"user": null,
"readonlyRootFilesystem": null,
"dockerLabels": null,
"privileged": null,
"name": "<name>"
}
],
"memory": null,
"taskRoleArn": "arn:aws:iam::<id>:role/<name>",
"family": "<test-cluster>",
"requiresCompatibilities": [
"EC2"
],
"networkMode": null,
"cpu": null,
"volumes": [],
"placementConstraints": []
}
将 entryPoint 更改为使用命令也不起作用。
Status reason CannotPullContainerError: API error (400): invalid reference format
Command ["echo","HELLO"]
我是否遗漏了使简单的echo 命令起作用的任何配置?
【问题讨论】:
-
你有
部分的例子吗? -
@OlivierCazade 显然我使用了 ARN 而不是 URI 链接,如我的 ECR 中所示。感谢您的帮助。
标签: amazon-web-services docker amazon-ecs