簡體   English   中英

無法在AWS上使用ecs-cli部署docker

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM