2016-07-04 89 views
4

我已在ECS回購,已經創建了使用ECS-CLI麻煩與AWS部署搬運工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

這裏是我的搬運工,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. 

我不知道有什麼任務定義或需要什麼。

+1

注ECS-CLI撰寫和碼頭工人的撰寫是不相同的,所以你應該仔細檢查用於ECS的語法和你的YAML文件。 (完整性檢查 - 我假設你的配置文件確實以.yaml結尾?) – ldg

+0

@ldg編輯了yml。這是一個錯誤的問題。 –

+1

服務和任務是ecs的重要組成部分。您應該能夠在ecs服務上找到相同的文檔。 ecs-cli撰寫應該爲您創建任務和定義。從好像ECS錯誤,是找到容器映像爲空..你可以添加你泊塢窗撰寫陽明..注:ECS CLI組成不支持撰寫第2版,只支持泊塢窗的一個子集組成1級的命令。這裏是單證:http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cmd-ecs-cli-compose.html – Shibashis

回答

6

據我瞭解,ECS-CLI具有完整的碼頭工人撰寫的文件語法的支持非常有限。例如,你應該看到WARN[0000] Skipping unsupported YAML option for service... option name=build service name drafter

的原因是你使用的是希望所有的服務是圖像ECS-CLI的版本警告。因此,需要drafter的圖像,您可以通過docker build或傳統docker-compose調用產生(但那麼你就需要保持撰寫文件的兩個版本 - 傳統之一和ECS兼容的一

注意:這聽起來像他們可能計劃在未來支持build,至少根據我之前看到的一個github評論(對不起,已關閉此標籤,因此無法鏈接到它)

+0

那麼解決方案是什麼?我怎麼去解決它? – Dror

+0

@Dror - 我放棄嘗試使用ECS,所以我的知識是有限的,而且我不確定ecs-cli自從我發佈後是否發生了變化,但如果沒有,我相信您只是創建本地計劃容器的圖像(無AWS工具),然後相應地使用它們。 –

+0

我也收斂到手動設置安裝了Docker的EC2節點,並從那裏拿它 – Dror

3

問題在於您的撰寫文件:

drafter: 
    build: . 

這將無法正常工作,你s那些經過這麼

docker build -t drafter . 
docker tag drafter:latest somepath.amazonaws.com/drafter:latest 
docker push somepath.amazonaws.com/drafter:latest 

:HOULD先建,推動圖像

drafter: 
    image: somepath.amazonaws.com/drafter:latest 

注意,最新的可能也是一個版本。

+0

我試過這個,但仍然無法使它工作。請參閱[問題](https://stackoverflow.com/q/47711985/671013) – Dror