我第一次使用VS代码和WSL2构建Python容器。下面是我的示例Python代码。它在VS交互模式下运行良好,因为它正在获取我的默认AWS凭据
import boto3
s3BucketName = 'test-log-files'
s3 = boto3.resource('s3')
def s3move():
try:
s3.Object(s3BucketName, "destination/Changes.xlsx").copy_from(CopySource=(s3BucketName + "/source/Changes.xlsx"))
s3.Object(s3BucketName,"source/Changes.xlsx").delete()
print("Transfer Complete")
except:
print("Transfer failed")
if __name__ == "__main__":
s3move()
由VS代码生成的Dockerfile:
# For more information, please refer to https://aka.ms/vscode-docker-python
FROM python:3.8-slim-buster
# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1
# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1
# Install pip requirements
COPY requirements.txt .
RUN python -m pip install -r requirements.txt
RUN pip install boto3
WORKDIR /app
COPY . /app
# Switching to a non-root user, please refer to https://aka.ms/vscode-docker-python-user-rights
RUN useradd appuser && chown -R appuser /app
USER appuser
# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
CMD ["python", "S3MoveFiles/S3MoveFiles.py"]
我想使用docker容器测试这个,似乎我必须将AWS凭据传递给容器。虽然还有其他方法,而且可能更安全,但我想通过在docker命令中装入卷作为参数来测试该方法
docker run -v ~/.aws/credentials:/appuser/home/.aws/credentials:ro image_id
我在VS代码中的终端窗口中收到“传输失败”消息。我做错了什么?检查了几篇文章,但找不到任何提示。我没有以root用户身份登录
目前没有回答
相关问题 更多 >
编程相关推荐