Как смонтировать папку с хоста в контейнер Docker с помощью Elasti c Beanstalk? - PullRequest
1 голос
/ 09 июля 2020

У меня есть 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 никогда не создается. Что я делаю не так?

1 Ответ

1 голос
/ 10 июля 2020

Я попытался воспроизвести проблему, но не смог. В моих тестах 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 - объем = / 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=, а также другие параметры конфигурации.

...