我正在尝试使用Dockerrun.aws.json的任务定义将我的EFS挂载到多docker Elastic Beanstalk环境。此外,我还将EFS的安全组配置为接受来自EC2 (EB环境)安全组的NFS流量。
然而,我面对的错误:
ECS task stopped because: Error response from daemon: createecs - awseb seyahatciblog - env - wordpress k3k5grsrma - 2 - 88 - eff0a5fc88f9ae7500:VolumeDriver。创建:挂载卷失败:挂载文件系统未知类型的efs。
我正在使用AWS管理控制台上传这个Dockerrun.aws.json文件:
{
"AWSEBDockerrunVersion": 2,
"authentication": {
"bucket": "seyahatci-docker",
"key": "index.docker.io/.dockercfg"
},
"volumes": [
{
"name": "wordpress",
"efsVolumeConfiguration": {
"fileSystemId": "fs-d9689882",
"rootDirectory": "/blog-web-app/wordpress",
"transitEncryption": "ENABLED"
}
},
{
"name": "mysql-data",
"efsVolumeConfiguration": {
"fileSystemId": "fs-d9689882",
"rootDirectory": "/blog-db/mysql-data",
"transitEncryption": "ENABLED"
}
}
],
"containerDefinitions": [
{
"name": "blog-web-app",
"image": "bireysel/seyehatci-blog-web-app",
"memory": 256,
"essential": false,
"portMappings": [
{"hostPort": 80, "containerPort": 80}
],
"links": ["blog-db"],
"mountPoints": [
{
"sourceVolume": "wordpress",
"containerPath": "/var/www/html"
}
]
},
{
"name": "blog-db",
"image": "mysql:5.7",
"hostname": "blog-db",
"memory": 256,
"essential": true,
"mountPoints": [
{
"sourceVolume": "mysql-data",
"containerPath": "/var/lib/mysql"
}
]
}
]
}
AWS配置截图:
- EC2安全组(由EB自动创建) EFS安全组
- EFS网络
我的场景:
- 安装一些EC2s与Amazon Linux 2 ami。
- 尝试设置EFS
尝试挂载EFS驱动器时出现相同的错误。
看起来像WAS NOT
包包含在Amazon Linux 2 AMI中,尽管文档指定应该包含它。
amzn-efs-utils包是预先安装在Amazon Linux和Amazon Linux 2 Amazon Machine Images (ami)上的。
https://docs.aws.amazon.com/efs/latest/ug/overview-amazon-efs-utils.html
运行which amzn-efs-utils
返回:no amzn-efs-utils installed.
$ which amzn-efs-utils
/usr/bin/which: no amzn-efs-utils in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin)
修复安装amzn-efs-utils
sudo yum install amazon-efs-utils
在搜索了整个网络后,我没有遇到任何解决这个问题的方法。我联系了AWS支持。他们告诉我,问题在于缺少"amazon-efs-utils"。在Elastic Beanstalk创建的EC2实例上扩展,然后我通过创建一个名为efs的文件来修复这个错误。. ebeextensions文件夹中的配置:
.ebextensions/efs.config
packages:
yum:
amazon-efs-utils: 1.2
最后,我在上传之前压缩了。ebeextensions文件夹和我的Dockerrun.aws.json文件,问题已经解决了。