Dockerized Flask API上的部分响应错误(长响应)

时间:2017-07-18 00:34:59

标签: python rest http docker flask

我有一个Flask API(Python 3.5),它在我的本地设置中返回一个完整的响应。目前,我已将应用程序停靠,现在该应用程序在我本地docker中的容器内运行。

我当前的问题是,当我将相同的请求发送到docker容器内的同一服务时,响应被截断。 Postman只是停止工作,curl将返回CURL_PARTIAL_RESPONSE错误。

我的实际完整回复是> 6 000 000字节。这是一个很长的回应。但是从码头工作者我得到部分反应,它似乎被切断了。是否有一些环境变量或库,docker容器需要不截断此响应?或者这可能是与烧瓶有关的一些属性?

我在本地设置相同,在本地设置中,响应不会被截断。我怀疑docker容器有一些设置,因此我得到了部分响应。任何关于此的指示都表示赞赏。

DockerFile:

FROM python:3.5

WORKDIR /worker_deploy

ADD trainer /worker_deploy/

RUN pip install -r requirements.txt

EXPOSE 80
EXPOSE 5000

ENTRYPOINT ["python","/service/run_docker_trainer.py"]

requirements.txt有一些其他的库,但我只包括python和flask版本:

   Flask==0.12.2   
   Python 3.5.0 

像这样启动容器:

docker run -it -p 5000:5000 miracle

(奇迹是我的码头图片,它从0.0.0.0:5000开始)

然后我在127.0.0.1/test上发出POST请求,我得到一个JSON 1.6MB的响应,我只收到部分输出,curl表示连接已关闭 与curl(18)错误:CURL_PARTIAL_RESPONSE

我在flask中的代码使用" jsonify"返回响应。所以它不是流式响应。

 @flask_app.route('/train', methods=['POST'])
        def train_model():
           trainer = worker.Worker(service_obj)
           ret = trainer.train_package()
           return jsonify(ret)

0 个答案:

没有答案