我构建了一个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
作业会得到失败的状态。在
出什么问题了?我在本地运行容器,可以在没有任何错误的情况下启动脚本。在
删除
ENTRYPOINT
行。但是用CMD
替换它,它表示容器实际在做什么。在Docker容器运行的主命令有两个部分,};当容器启动时,combined together into one command。容器正在运行的命令可能类似于
ENTRYPOINT
和{因此
bash
在其$PATH
中找到一个python
(成功),并尝试将其作为shell脚本运行(导致该错误)。在你不需要一个
^{pr2}$ENTRYPOINT
,这会引起麻烦。相反,您通常希望容器做一件事,所以应该在Dockerfile中指定它。在相关问题 更多 >
编程相关推荐