【发布时间】:2017-10-18 03:10:08
【问题描述】:
我无法在 docker 容器中请求我的烧瓶应用程序。它没有响应。
这是我的烧瓶应用程序文件:
import json
from flask import Flask, jsonify
from flask import request
from trained_model import predict
app = Flask(__name__)
@app.route("/", methods=['POST'])
def main():
res = []
for obj in request.json:
item = str(obj['item'])
print item
predicted = predict(item)
print predicted
res.append({'item': item, 'correct': predicted})
return json.dumps({'results': res})
if __name__ == "__main__":
app.run(host='0.0.0.0')
有我的 dockerfile:
FROM tensorflow/tensorflow
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Bundle app source
COPY . /usr/src/app
RUN sh docker_install.sh
EXPOSE 5000
ENTRYPOINT ["python"]
CMD ["api.py"]
有我的 docker run 命令:
sudo docker run -p 5000:5000 -d my-image
当我尝试发送 post 请求时它不起作用。
【问题讨论】:
-
这里要添加两件事来提供帮助:1) 但是您正在发送 POST 请求和它的输出(因此我们可以确切地看到错误是什么),2) 可能有一点记录容器的输出(您永远不知道,也许某处存在 Flask 错误配置)您也可以添加一个简单的 GET 路由并调用它,以确保参数处理/POST 路由中的任何内容都没有发生任何有趣的事情。
-
1) 运行容器中没有任何可疑日志 2) 使用 GET 它也不起作用