首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Docker在启动时运行Python文件

Docker在启动时运行Python文件
EN

Stack Overflow用户
提问于 2020-10-20 08:45:31
回答 2查看 1.1K关注 0票数 0

首先,我对Docker非常陌生,所以如果我对它的工作原理的总体想法是愚蠢的,那么请告诉我:)我创建了一个Dockerfile,它看起来像这样:

代码语言:javascript
运行
AI代码解释
复制
FROM nodered/node-red:1.2.1
COPY./retrieveNewFlow.py /home/retrieveNewFlow.py
ENTRYPOINT [ "/bin/bash" ]
CMD [ "python3", "/home/retrieveNewFlow.py" ]

我希望在容器每次启动时执行retrieveNewFlow.py Python脚本。但我得到了以下错误消息:

代码语言:javascript
运行
AI代码解释
复制
 /usr/bin/python3: /usr/bin/python3: cannot execute binary file

有人能想象我做错了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-20 08:49:23

更改dockerfile中的ENTRYSCRIPT

来自ENTRYPOINT [ "/bin/bash" ]

转到ENTRYPOINT [ "/bin/bash", "-l", "-c" ]

票数 1
EN

Stack Overflow用户

发布于 2020-10-20 12:05:26

ENTRYPOINTCMDcombined together into a single command,所以主容器命令变成

代码语言:javascript
运行
AI代码解释
复制
/bin/bash python3 /home/retrieveNewFlow.py

这将指示Bash尝试将Python解释器作为shell脚本运行;因为它不是shell脚本,所以会得到您看到的错误。

您不需要拥有ENTRYPOINT,您应该在此处将其删除。让CMD保持原样。

代码语言:javascript
运行
AI代码解释
复制
# No ENTRYPOINT
CMD ["python3", "/home/retrieveNewFlow.py"]

这将导致主容器命令是Python脚本,而不需要引入bash包装器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64441585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文