【问题标题】:Docker run Python File on startupDocker 在启动时运行 Python 文件
【发布时间】:2020-10-20 08:45:31
【问题描述】:

首先,我对 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

谁能想象我做错了什么?

【问题讨论】:

    标签: python docker dockerfile


    【解决方案1】:

    在您的dockerfile 中更改ENTRYSCRIPT

    来自ENTRYPOINT [ "/bin/bash" ]

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

    【讨论】:

    【解决方案2】:

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

    /bin/bash python3 /home/retrieveNewFlow.py
    

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

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

    # No ENTRYPOINT
    CMD ["python3", "/home/retrieveNewFlow.py"]
    

    这将导致主容器命令成为 Python 脚本,而无需引入 bash 包装器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-15
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2023-03-30
      • 1970-01-01
      • 2011-04-14
      • 2014-02-08
      相关资源
      最近更新 更多