【发布时间】:2016-11-06 14:40:41
【问题描述】:
我在 ECS 上有一个 repo,使用 ecs-cli 创建了一个集群
ecs-cli configure --region=us-west-2 --profile=<MY PROFILE> --cluster=cluster-1
ecs-cli up --capability-iam --keypair=<MY KEYPAIR>
但是接下来执行撰写文件的步骤是当它失败时
ecs-cli compose --file docker-compose.yml --project-name drafter-project service up
这是我的 docker-compose.yml 文件:
version: '2'
services:
rabbit:
image: rabbitmq
hostname: rabbit1
ports:
- 5672:5672
- 15672:15672
drafter:
build: .
depends_on:
- rabbit
我在这里遇到的错误是:
Error registering task definition
error=ClientException: Container.image should not be null or empty.
Create task definition failed
error=ClientException: Container.image should not be null or empty.
我不确定任务定义是什么或它需要什么。
【问题讨论】:
-
注意 ecs-cli compose 和 docker compose 并不相同,因此您应该仔细检查 ecs 和 yaml 文件的语法。 (健全性检查 - 我假设您的配置文件确实以 .yaml 结尾?)
-
服务和任务是 ecs 的重要组成部分。您应该能够在 ecs 服务上找到相同的文档。 ecs-cli compose 应该为您创建任务和定义。从看起来像 ecs 的错误来看,发现容器映像为空。你可以添加你的 docker compose yml 吗?注意:ECS cli compose 不支持 compose 版本 2,只支持 docker compose 1 命令的子集。这是文档:docs.aws.amazon.com/AmazonECS/latest/developerguide/…
-
docs.docker.com/compose/compose-file/#versioning 有版本 1 的文档和示例
-
在执行 CLI 命令之前构建并上传图像到 ecr。没有其他选择。您可以使用 ECR 或 docker hub 来托管图像。
-
@Shibashis 那么,没有办法在本地构建您的图像并告诉 ecs-cli 从那里拉取它们吗?
标签: amazon-web-services docker docker-compose amazon-ecs