我有一个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)