amazon-web-services – 运行多容器Docker的AWS BeanStalk环境无法启动Health:Severe

我正在尝试启动运行多容器Docker的AWS BeanStalk环境,但它失败并显示以下事件列表:

2016-01-18 16:58:57 UTC+0100    WARN    Removed instance [i-a7162d2c] from your environment due to a EC2 health check failure.
2016-01-18 16:57:57 UTC+0100    WARN    Environment health has transitioned from Degraded to Severe. None of the instances are sending data.
2016-01-18 16:47:58 UTC+0100    WARN    Environment health has transitioned from Pending to Degraded. Command is executing on all instances. Command failed on all instances.
2016-01-18 16:43:58 UTC+0100    INFO    Added instance [i-a7162d2c] to your environment.
2016-01-18 16:43:27 UTC+0100    INFO    Waiting for EC2 instances to launch. This may take a few minutes.
2016-01-18 16:41:58 UTC+0100    INFO    Environment health has transitioned to Pending. There are no instances.
2016-01-18 16:41:54 UTC+0100    INFO    Created security group named: awseb-e-ih2exekpvz-stack-AWSEBSecurityGroup-M2O11DNNCJXW
2016-01-18 16:41:54 UTC+0100    INFO    Created EIP: 52.48.132.172
2016-01-18 16:41:09 UTC+0100    INFO    Using elasticbeanstalk-eu-west-1-936425941972 as Amazon S3 storage bucket for environment data.
2016-01-18 16:41:08 UTC+0100    INFO    createEnvironment is starting.

健康状况标记为“严重”,我有以下日志:

98 % of CPU is in use.
Initialization failed at 2016-01-18T15:54:33Z with exit status 1 and error: Hook /opt/elasticbeanstalk/hooks/preinit/02ecs.sh failed.

. /opt/elasticbeanstalk/hooks/common.sh
/opt/elasticbeanstalk/bin/get-config container -k ecs_cluster
EB_CONFIG_ECS_CLUSTER=awseb-figure-test-ih2exekpvz
/opt/elasticbeanstalk/bin/get-config container -k ecs_region
EB_CONFIG_ECS_REGION=eu-west-1
/opt/elasticbeanstalk/bin/get-config container -k support_files_dir
EB_CONFIG_SUPPORT_FILES_DIR=/opt/elasticbeanstalk/containerfiles/support
is_baked ecs_agent
[[ -f /etc/elasticbeanstalk/baking_manifest/ecs_agent ]]
true
aws configure set default.output json
aws configure set default.region eu-west-1
echo ECS_CLUSTER=awseb-figure-test-ih2exekpvz
grep -q 'ecs start/'
initctl status ecs
initctl start ecs
ecs start/running, process 8418
TIMEOUT=120
jq -r .ContainerInstanceArn
curl http://localhost:51678/v1/metadata
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (7) Failed to connect to     localhost port 51678: Connection refused

我的配置:

Environment type: Single Instance 
Instance type: Medium
Root volume type: SSD
Root Volume Size: 8GB
Zone: EU-West

我的Dockerrun.aws.json:

{
  "AWSEBDockerrunVersion": "2",
  "containerDefinitions": [
    {
      "essential": true,
      "memory": 252,
      "links": [
        "redis"
      ],
      "mountPoints": [
        {
          "containerPath": "/srv/express",
          "sourceVolume": "_WebExpress"
        },
        {
          "containerPath": "/srv/express/node_modules",
          "sourceVolume": "SrvExpressNode_Modules"
        }
      ],
      "name": "web",
      "image": "figure/web:latest",
      "portMappings": [
        {
          "containerPort": 3000,
          "hostPort": 3000
        }
      ]
    },
    {
      "essential": true,
      "memory": 252,
      "image": "redis",
      "name": "redis",
      "portMappings": [
        {
          "containerPort": 6379,
          "hostPort": 6379
        }
      ]
    }
  ],
  "family": "",
  "volumes": [
    {
      "host": {
        "sourcePath": "./web/express"
      },
      "name": "_WebExpress"
    },
    {
      "host": {
        "sourcePath": "/srv/express/node_modules"
      },
      "name": "SrvExpressNode_Modules"
    }
  ]
}

最佳答案 @Kilianc:如果要使用多docker容器平台创建弹性beanstalk应用程序,则必须将以下策略列表添加到默认角色“aws-elasticbeanstalk-ec2-role”,或者您可以创建自己的角色.

> AWSElasticBeanstalkWebTier
> AWSElasticBeanstalkMulticontainerDocker
> AWSElasticBeanstalkWorkerTier

谢谢

点赞