Хорошо, понятно, что с учетом ожиданий вывода CSV на хост , у нас есть проблема с тем, как это настроить.
В вашем Dockerfile объявлено два ОБЪЕМА, что нормально.Это именованных томов , которые отлично подходят для сохранения данных между контейнерами, идущими вверх и вниз на одном хосте, но вы не можете просто войти, как будто это обычная файловая система с вашего хоста.
Если вы хотите, чтобы файл отображался на вашем хосте, вы можете создать привязанный подключенный том во время выполнения, который отображает путь в файловой системе вашего хоста на путь в файловой системе контейнера Docker.
docker run -v $(pwd):/home/ec2-user/docker_test/data docker_test
сделает это.$(pwd)
- это выражение, которое оценивает ваш текущий рабочий каталог, если вы работаете в системе * nix, где вы запускаете команду.Позаботьтесь об этом и настройте по мере необходимости (например, если вы используете Windows в качестве хоста).
С таким образом настроенным томом, когда CSV создается в файловой системе контейнера в месте, которое вы намереваетесь, он будет доступен на вашем хосте в том месте, где вы его отобразили.
Читайте о томах .Они жизненно важны для использования Docker, их не сложно понять на первый взгляд, но есть некоторые хитрости в деталях.
Что касается загрузки на S3, я бы рекомендовал использовать библиотеку boto3
и делатьэто в вашем скрипте Python.Вы также можете использовать что-то вроде s3cmd
, если вам это проще.