Amazon-Web-Services

AWS Elastic Beanstalk Docker 多容器部署錯誤,無法設置記憶體

  • February 18, 2018

我正在使用 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 執行環境

引用自:https://serverfault.com/questions/897353