运行多容器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 

我的configuration:

 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容器平台创build弹性beanstalk应用程序,则必须将以下策略列表添加到默认angular色“aws-elasticbeanstalk-ec2-role”,或者您可以创build自己的angular色。

  1. AWSElasticBeanstalkWebTier
  2. AWSElasticBeanstalkMulticontainerDocker
  3. AWSElasticBeanstalkWorkerTier

谢谢

看来我忘了设置AWS BeanStalk文档中描述的策略和权限: http : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_ecstutorial.html