我使用beanstalk-maven-plugin并喜欢将多个容器部署到aws但我无法做到这一点。堆栈刚刚失败,“无法启动环境”。 - 就是这样。
如果我通过beanstalk aws页面创建具有相同zip文件的环境,它就可以工作。
我创建了两个服务角色/ iam
1)aws-elasticbeanstalk-ec2-role - 使用Policy:AWSElasticBeanstalkMulticontainerDocker,AmazonEC2ContainerServiceforEC2Role
2)具有相同策略的aws-elasticbeanstalk-service-role,如aws-elasticbeanstalk-ec2-role
我的档案是:
Dockerrun.aws.json
{
"AWSEBDockerrunVersion": 2,
"containerDefinitions": [
{
"name": "nginx-proxy",
"image": "nginx:1.10",
"essential": true,
"memory": 128,
"portMappings": [
{
"hostPort": 80,
"containerPort": 8080
}
]
}
]
}
.ebextensions / blockdevice-sdh.config
option_settings:
aws:autoscaling:launchconfiguration:
BlockDeviceMappings: /dev/xvdcz=:12:true:gp2,/dev/sdh=:24
.ebextensions / serviceroles.config
option_settings:
- namespace: aws:autoscaling:launchconfiguration
option_name: IamInstanceProfile
value: aws-elasticbeanstalk-ec2-role
- namespace: aws:elasticbeanstalk:environment
option_name: ServiceRole
value: aws-elasticbeanstalk-service-role
和pom.xml中的一些数据
<properties>
<beanstalk.solutionStack>64bit Amazon Linux 2016.03 v2.1.3 running Multi-container Docker 1.11.1 (Generic)</beanstalk.solutionStack>
<beanstalker.region>eu-central-1</beanstalker.region>
</properties>
来自实例的控制台日志没有显示那么多。我比较了云形成模板(一次来自mvn部署,一次来自ElasticBeanstalk通过网页部署),我没有看到任何重要的差异。
检查完所有事件后,唯一不同的是mvn部署没有执行ECS任务
ECS task: arn:aws:ecs:eu-central-1:980585748732:task/b1098b24-d5ac-44e8-9987-e90e98fa0983 is RUNNING.
Starting new ECS task with awseb-Release-nebh2zbkfa:1.
Added instance [i-dd79c060] to your environment.
Elasticbeanstalk的文档说,EB负责自动创建和运行它。 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_ecs.html
但是我的zip文件看起来像这样:
0 07-15-16 21:33 .ebextensions/
118 07-15-16 21:33 .ebextensions/blockdevice-sdh.config
98 07-15-16 21:33 .ebextensions/customoptions.config
268 07-15-16 21:33 .ebextensions/serviceroles.config
292 07-15-16 00:02 Dockerrun.aws.json
我希望你有一些想法,为什么容器没有启动。
非常感谢 烫发