amazon-web-services - 通过 Boto3 使用 docker run 命令访问 S3 对象会引发 ProfileNotFound 异常,但在通过 python 运行时效果很好
问题描述
我正在做一个项目,我需要使用 Boto3 从 S3 存储桶中读取文本文件。然后需要 dockerize 我的应用程序。我使用 Boto3 实现了我的代码,它运行得非常好(注意:通过带有开关 -p 和 -n 的 argparser 获取两个参数)。但是当我尝试使用 Docker 运行相同的
PS **my Working Directory** > docker run --rm Image_name -p Argument1 -n Argument2
<class 'botocore.exceptions.ProfileNotFound'> Code.py 92
我在上面搜索了很多东西,我的理解是 AWS 容器目录无法找到存储在我的主目录/.aws 文件夹中的凭据文件和配置文件。
我试过的:
1.路径安装如下:
PS **my Working Directory** > docker run --rm -it -v %userprofile%\.aws:/root/.aws
amazon/aws-cli
docker: Error response from daemon: %!u(string=is not a valid Windows path)serprofile%!\
(MISSING).aws.
请参阅“docker run --help”。
我完全不明白语法有什么问题。我尝试在 %userprofile% 中手动输入我的用户配置文件目录为 C:/Users/Deepak
然后奇怪的 WSL2(后端)弹出窗口说在 Windows 上使用传递容器可能效果不佳。我不确定这意味着什么。它对在 windows 环境下构建的 Docker 容器有什么影响吗?
2.我也将 Credential 和 Config 文件移到了我的工作目录中,并尝试了以下代码:
PS my Working Directory > docker run --rm -it -v ${PWD}:/root/.aws amazon/aws-cli Image_name -p
Argument1 -n Argument2
解决方案
推荐阅读
- docker - Docker Compose 卷未安装
- java - 无法使用 Selenium Java 中的 sendKeys() 将文件上传到“浏览”按钮
- python - 如何区分布尔表达式和 z3 表达式?
- arrays - 从 Bytestream 中提取元数据(纬度、经度、创建日期、制造商)
- java - 如何在 Gradle 中为 OpenAPI 3.0 使用 Swagger Codegen?
- javascript - nodejs,NotFoundError:未找到 - SendStream.error (...\node_modules\serve-static\index.js:121:7) 消息:'未找到'}
- jetbrains-ide - Highlight SQL queries inside of YAML file in Goland
- java - 自动更新类中的 sharedpreferences
- r - 在二维矩阵中查找相互关联的邻居
- ruby-on-rails - 如何阻止某些资产被缩小