Skip to main content
 首页 » 编程设计

python之运行dockerized Hello world python示例时执行格式错误

2025年05月04日369zhengyun_ustc

我正在尝试从基础知识中学习docker。在他们的官方文档中,他们演示了一个简单的Hello world Python应用程序。但是,如果我在Windows主机上尝试相同操作,则会收到以下异常。我的世界代码

from flask import Flask 
app = Flask(__name__) 
@app.route("/") 
def hello(): 
    return "Hello World!" 
if __name__ == "__main__": 
    app.run(host="0.0.0.0", port=int("5000"), debug=True) 

和我的docker文件:
FROM python:alpine3.7 
COPY . /app 
WORKDIR /app 
RUN pip install -r requirements.txt 
EXPOSE 5000 
CMD python ./index.py 

require.txt文件仅包含要安装的库名称( flask )。

而运行dockerized镜像时出现的错误是

我对docker和python都是全新的。所以请帮帮我...谢谢

请您参考如下方法:

我之前已经看过这种模式,所以我很确定错误消息的含义,但是在这种情况下,我不知道为什么。似乎正在发生的事情是Flask会自行重新启动,但是在最初执行是使用python ./index.py开始的情况下,重新启动正在执行/app/index.py。它试图处理最初要执行的Python文件python的第一个输入参数,就像它可以直接执行一样。错误是说不是。如果在该文件的顶部放上一行bang,例如#!/usr/bin/env python,并使它可执行,则它可能会开始为您工作。但是您不必这样做。这里的设置应该可以正常工作。

所以我用Google搜索,这似乎是 werkzeug (Flask使用的库), Docker Windows 的组合的一个已知问题:

https://github.com/pallets/werkzeug/issues/1482

由于我不在Windows上,因此我将其留给OP或其他人从这里获取。