首先,我对Docker非常陌生,所以如果我对它的工作原理的总体想法是愚蠢的,那么请告诉我:)我创建了一个Dockerfile,它看起来像这样:
FROM nodered/node-red:1.2.1
COPY./retrieveNewFlow.py /home/retrieveNewFlow.py
ENTRYPOINT [ "/bin/bash" ]
CMD [ "python3", "/home/retrieveNewFlow.py" ]
我希望在容器每次启动时执行retrieveNewFlow.py Python脚本。但我得到了以下错误消息:
/usr/bin/python3: /usr/bin/python3: cannot execute binary file
有人能想象我做错了什么吗?
发布于 2020-10-20 08:49:23
更改dockerfile
中的ENTRYSCRIPT
来自ENTRYPOINT [ "/bin/bash" ]
转到ENTRYPOINT [ "/bin/bash", "-l", "-c" ]
发布于 2020-10-20 12:05:26
ENTRYPOINT
和CMD
是combined together into a single command,所以主容器命令变成
/bin/bash python3 /home/retrieveNewFlow.py
这将指示Bash尝试将Python解释器作为shell脚本运行;因为它不是shell脚本,所以会得到您看到的错误。
您不需要拥有ENTRYPOINT
,您应该在此处将其删除。让CMD
保持原样。
# No ENTRYPOINT
CMD ["python3", "/home/retrieveNewFlow.py"]
这将导致主容器命令是Python脚本,而不需要引入bash
包装器。
https://stackoverflow.com/questions/64441585
复制