AWS Lambda容器启动时出现"permission denied"错误。

4

我正在尝试使用AWS Lambda与Docker容器。该容器是从ubuntu:latest开始构建的。

在使用AWS Lambda控制台运行测试时,我遇到了以下错误:

启动错误:fork/exec /root/miniconda3/bin/python:权限被拒绝
入口点:[/root/miniconda3/bin/python,-m,awslambdaric]

/root/miniconda3/bin/python和awslambdaric文件确实具有正确的权限。

您有什么想法是什么原因?

3个回答

3

我遇到了一个类似的问题,/root 目录的权限是 drwxr-x---(即“其他人”无法读取或执行)。当在 Lambda 下运行时,它不会以 root 权限运行,因此无法访问那些不可被“其他人”读取/执行的目录。

在我的 Dockerfile 中添加“RUN chmod o+rx /root”后,我的 Lambda 成功运行。

另外,还请检查 /root/miniconda3/bin/python 是否为符号链接。我在某个地方读到过,这也可能导致出现此错误。


0
在 Dockerfile 中添加 RUN chmod 777 /root 对我很有效。

将/root的权限设置为777是危险的,权限存在是有原因的。 - Mohammad Moallemi

0
我在AWS Lambda中运行一个Python应用程序的Docker镜像时遇到了同样的问题。
Python文件被复制到根目录下,当Lambda尝试访问它们时无法访问。
解决方案是在Dockerfile中使用WORKDIR /project将所有内容复制到每个人都可以访问的文件夹中。然后,当我触发Lambda时,我就拥有了所有必要的访问权限。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接