【问题标题】:How can I mount a folder from the host to a Docker container with Elastic Beanstalk?如何使用 Elastic Beanstalk 将主机中的文件夹挂载到 Docker 容器?
【发布时间】:2020-10-30 05:27:12
【问题描述】:

我有一个Dockerfile.aws.json

{
    "AWSEBDockerrunVersion": "1",
    "Ports": [{
        "ContainerPort": "5000",
        "HostPort": "5000"
    }],
    "Volumes": [{
        "HostDirectory": "/tmp/download/models",
        "ContainerDirectory": "/models"
    }],
    "Logging": "/var/log/nginx"
}

.ebextensions/download.config,我有:

sources:
  /tmp/download: https://example.com/models.zip

但在我的容器中,/models 永远不会被创建。我做错了什么?

【问题讨论】:

    标签: amazon-web-services docker amazon-elastic-beanstalk


    【解决方案1】:

    我试图复制该问题,但不能。在我的测试中,Volumes 按预期工作。

    但是,您可以使用runlike 工具进行一些故障排除,以检查用于实际运行容器的命令。该工具允许您检查 EB 是否正确安装卷:

    docker run --name=funny_driscoll --hostname=628fc70a4331 --env=PORT=8080 --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/ bin:/sbin:/bin --volume=/tmp/fffff:/models --expose=8080 --restart=no --detach=true eb14d2391001 ./testapp

    要使用它,请登录 EB 实例并安装它:

    sudo yum install python-pip
    
    sudo pip install runlike
    
    # check running container
    sudo docker ps 
    
    # inspect the docker run command
    runlike <container_id>
    

    这将能够确认docker run 是否正确包含--volume= 以及其他配置选项。

    【讨论】:

    • 好像不能用.ebextensionsDockerfile.aws.json。我的最新一期是stackoverflow.com/q/62818496/239879,如果您有任何见解?
    • @Shamoon 谢谢。我看到了另一个问题,但还没有尝试复制它。 volume 问题花了我一段时间仔细检查:-)
    • 非常感谢您的帮助。
    • @Shamoon 没问题。稍后我会尝试找一些时间仔细检查另一个问题,看看我是否可以提供任何见解。
    • @Shamoon 当你用`--volume, the existing /mount`运行容器时,根本不使用。它将指向映射的主机目录。所以从某种意义上说,它被覆盖了。
    猜你喜欢
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 2021-01-13
    相关资源
    最近更新 更多