在Dockerrun.aws.json中设置卷大小

问题描述 投票:0回答:1

嘿,我正在通过弹性beantalk部署多容器docker env。

我的docker-compose.yml具有类似条目

service:
    image: redis
    volumes:
        - redisdata:/data
volumes:
    redisdata:

通过这种方式,redisdata的内容被固定在磁盘上,并且“生存”部署。

在dockerrun.aws.json端,这导致

{
    "AWSEBDockerrunVersion": 2,
    "containerDefinitions": [
        {
            "essential": true,
            "image": "redis",
            "mountPoints": [
                {
                    "containerPath": "/data",
                    "sourceVolume": "Redisdata"
                }
            ],
            "name": "redis"
        }
    ],
    "family": "",
    "volumes": [
        {
            "host": {
                "sourcePath": "redisdata"
            },
            "name": "Redisdata"
        }
    ]
}

现在是我的问题:

ec2-instance $ df -h
/dev/xvda1      7,8G    7,7G     0  100% /
/dev/dm-3        99G     89M   94G    1% /var/lib/docker/devicemapper/mnt/2d33cb679881808fac34182bfbec8feb57bf5f65c81c51b52c3f6c9917541040

创建的卷redisdata仅具有7.7 GB的大小,其中redis容器的主根文件系统获得了99 GB的空间。这是由于将这样的命名卷挂载到ec2实例上的/var/app/current/redisdata上的结果,并且该文件夹只是8 GB根挂载的一部分。如何为Dockerrun.aws.json添加大小规格?

我已经看到了在Dockerrun.aws.json中指定“标准”安装点的选项,但是如何确定源目录已创建并且它具有足够的空间?

amazon-web-services docker amazon-ec2 amazon-elastic-beanstalk
1个回答
0
投票

我到目前为止发现的唯一解决方案是通过更改ebextension配置文件。

我创建了带有内容的文件.ebextensions/bla.config

option_settings:
  - namespace: aws:autoscaling:launchconfiguration
    option_name: RootVolumeSize
    value: "100"

这样,docker容器的根卷将具有100 GB。

注意:部署此附加文件将擦除您的ec2实例,ec2实例上的所有数据(包括docker卷)都将丢失!]

© www.soinside.com 2019 - 2024. All rights reserved.