[英]Deploying multi-container docker application to AWS ECS Fargate using ECS-CLI
[英]Trouble deploying docker on AWS with ecs-cli
我在ECS上有一個回購,使用ecs-cli創建了一個集群
ecs-cli configure --region=us-west-2 --profile=<MY PROFILE> --cluster=cluster-1
ecs-cli up --capability-iam --keypair=<MY KEYPAIR>
但是,執行compose文件的下一步是失敗時
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對完整的Docker Compose文件語法的支持非常有限。 例如,您應該看到有關WARN[0000] Skipping unsupported YAML option for service... option name=build service name drafter
原因是您使用的ecs-cli版本期望所有服務都是圖像。 因此, drafter
需要一個圖像,您可以通過docker build
或傳統的docker-compose
調用生成圖像(但是您需要維護兩個版本的compose文件 - 傳統文件和ecs兼容文件)。
注意:聽起來他們可能計划在將來build
支持,至少根據我之前看到的一個github評論(抱歉,已關閉選項卡,因此無法鏈接到它)。
問題出在你的撰寫文件中:
drafter:
build: .
這將無法工作,你應該首先構建並推送圖像:
docker build -t drafter .
docker tag drafter:latest somepath.amazonaws.com/drafter:latest
docker push somepath.amazonaws.com/drafter:latest
所以在那之后:
drafter:
image: somepath.amazonaws.com/drafter:latest
請注意,最新版本也可能是版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.