AWS Batch:/usr/local/bin/python:无法执行二进制fi

2024-04-29 08:43:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我构建了一个AWS批量计算环境。我想在jobs中运行python脚本。 这是我使用的docker文件:

FROM python:slim
RUN apt-get update
RUN pip install boto3 matplotlib awscli
COPY runscript.py /
ENTRYPOINT ["/bin/bash"]

任务定义中的命令是:

^{pr2}$

当我在AWS控制台中提交作业时,我在CloudWatch中收到以下错误:

/usr/local/bin/python: /usr/local/bin/python: cannot execute binary file

作业会得到失败的状态。在

出什么问题了?我在本地运行容器,可以在没有任何错误的情况下启动脚本。在


Tags: 文件dockerrunfrom脚本awsbinusr
1条回答
网友
1楼 · 发布于 2024-04-29 08:43:37

删除ENTRYPOINT行。但是用CMD替换它,它表示容器实际在做什么。在

Docker容器运行的主命令有两个部分,ENTRYPOINT和{};当容器启动时,combined together into one command。容器正在运行的命令可能类似于

/bin/bash python /runscript.py

因此bash在其$PATH中找到一个python(成功),并尝试将其作为shell脚本运行(导致该错误)。在

你不需要一个ENTRYPOINT,这会引起麻烦。相反,您通常希望容器做一件事,所以应该在Dockerfile中指定它。在

^{pr2}$

相关问题 更多 >