当前位置: 首页 > 知识库问答 >
问题:

生产中带有Gunicorn的烧瓶应用程序出现错误:插座挂起

杨起运
2023-03-14

我有一个Flask应用程序作为Docker容器运行,在Pper space服务器上使用GUnicorn-

文档文件

FROM ubuntu:18.04
FROM python:3
RUN apt-get update -y && apt-get install -y python-pip python-dev
COPY . /backend
WORKDIR /backend
RUN pip3 install -r requirements.txt
EXPOSE 8000
CMD gunicorn --timeout 10000 --workers 4 --log-level debug --bind 0.0.0.0:8000 wsgi:app

app.py

#!/usr/bin/env python
# -*- coding: utf-8 -*- 
from flask import Flask, request

UPLOAD_FOLDER = '/uploads'
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
           
@app.route('/upload_file', methods=['GET', 'POST'])
def upload_file():
    return "it works fine"

wsgi.py

from api import app

if __name__ == '__main__':
    app.run()

我使用

sudo docker run -it -p 8000:8000 myFlaskApp:1.28

在从Postman启动API(/upload_file)时,我得到了

Error: socket hang up

但是,这个API可以很好地localhost(http://0.0.0.0:8000)

共有1个答案

刘阳荣
2023-03-14

首先尝试在终端中自己运行Gunicorn服务器(没有docker)

gunicorn -w xx -t xx -b 0.0.0.0:8080 wsgi:app

如果gunicorn运行良好,则dockerfile有问题。我认为应该将入口点设为gunicorn,然后在CMD中指定参数。

ENTRYPOINT ["gunicorn"]
CMD ["-w", "4", "-t", "10000", "-b", "0.0.0.0:8080", "wsgi:app"]
 类似资料:
  • 在CentOS 6.4中,我在/var/www/html/venv文件夹中创建了python虚拟环境。然后在激活虚拟环境后,我为我的flask应用程序安装了所有必要的python库。我检查了一下,Flask库位于/var/www/html/venv/lib/python2.7/site-packages文件夹中。我已经安装并加载了mod_wsgi。现在,在我的flask应用程序中(位于/var/w

  • 简单的测试应用程序: 如果它作为独立应用程序运行,则可以完美运行: 但未能从gunicorn开始: 一些注意事项: 如果关闭gevent(猴子补丁和gunicorn工人类),它将非常有效。 我怀疑这是否是初始化和共享数据库池的正确方法。尽管如此,我还是找不到任何其他方法在请求之间共享对象。

  • 我有一个烧瓶应用程序,我正试图过渡到通过gunicorn运行。我在这方面遇到了很多问题。以下是我的应用程序的运行代码: 首先,如果DEBUG_FLAG==true,应用程序将永远不会真正启动,但会继续重新启动,在本地点击它将不起作用。它只是一次又一次地这样做: 如果我用DEBUG_FLAG==False启动它,它实际上会启动并服务于一些请求,但由于未知原因,它仍然会频繁中断并重新启动: 如前所述,

  • 我在这里遵循烧瓶教程: http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world 我达到了我尝试的程度/跑py和我得到: 这看起来类似于: ImportError:没有名为flask的模块 但他们的解决方案没有帮助。作为参考,我确实有一个名为flask的文件夹,其中一位用户提到该文件夹可能会导致问题

  • 在过去的几周里,我花了太多的时间试图让它发挥作用。我的目标是使用烧瓶框架创建一个简单的网络应用程序,但我不断收到错误,几个小时的谷歌搜索和搜索stackoverflow也没有帮助。 我正在学习一个教程,该教程要求我运行:$python3 routes.py 只有我才能得到以下错误: 回溯(最近的最后一次调用):文件“routes.py”,第1行,从flask导入flask中,呈现\u模板导入错误:

  • 我一直想弄明白这个问题,但弄不明白。我的应用程序结构如下: 我为beanstalk提供了Python2.7环境,为我的虚拟环境提供了同样的环境。我在pip列表和要求中有所有需要的包。txt。eb config中yml文件中的我的WSGI路径设置为/myapp/application。皮耶。我从eb日志中得到的确切错误是: mod_wsgi(pid=2330):目标WSGI脚本'/opt/pytho