Amazon-Web-Services
AWS Elastic Beanstalk Docker 多容器部署錯誤,無法設置記憶體
我正在使用 Elastic Beanstalk 的多容器 Docker 配置將我的一個 AWS Elastic Beanstalk 應用程序轉換到 Docker。我創建了一個具有新環境的新 EB 應用程序。當我嘗試部署我的
Dockerrun.aws.json
配置時,EB 最終失敗,並在事件選項卡中顯示以下錯誤:Service:AmazonECS, Code:ClientException, Message:Invalid setting for container 'api'. At least one of 'memory' or 'memoryReservation' must be specified., Class:com.amazonaws.services.ecs.model.ClientException
我的
Dockerrun.aws.json
配置大致如下:{ "AWSEBDockerrunVersion": 2, "containerDefinitions": [ { "name": "api_proxy", "image": "{account_id}.dkr.ecr.us-east-1.amazonaws.com/{repo}:latest", "essential": true, "memory": 128, "portMappings": [ { "hostPort": 80, "containerPort": 80 } ], "links": [ "api" ] }, { "name": "api", "image": "{account_id}.dkr.ecr.us-east-1.amazonaws.com/{repo}:latest", "environment": { "DJANGO_SETTINGS_MODULE": "api.aws" }, "essential": true, "memory": 128 } ] }
任何幫助都將不勝感激。
2018 年 2 月 15 日更新:
我目前的部署過程如下。我首先創建 Docker 映像並將它們上傳到 Amazon 的 ECR。然後我壓縮
Dockerrun.aws.json
文件。由於這是在新的 AWS EB 環境中首次部署應用程序,因此我目前正在環境創建過程中上傳 zip 文件。我選擇的平台是Preconfigured platform: Multi-container Docker
. 對於應用程式碼,我上傳了包含該Dockerrun.aws.json
文件的 zipfile。
據我從文件中看到的- 環境選項應該是對像數組,所以你的 json 應該看起來像
{ "AWSEBDockerrunVersion": 2, "containerDefinitions": [{ "name": "api", "image": "nginx:latest", "essential": true, "memory": 128, "environment": [{ "name": "DJANGO_SETTINGS_MODULE", "value": "api.aws" }] },{ "name": "api_proxy", "image": "nginx:latest", "essential": true, "memory": 128, "links": ["api"], "portMappings": [{ "hostPort": 80, "containerPort": 80 }] }] }
至少我能夠使用上面的 json 執行環境