Flask API在Docker上运行但无法访问

朱利奥·马托林(Giulio Mattolin)

我正在尝试通过Docker运行我的API。我已经设法构建和运行它,但是,当我在Postman中对其进行测试时,它不起作用。
我有一个文件夹,其中包含uhopper.py(这是API),requirements.txt和Dockerfile。
一切似乎都正常,但是当我在“ http://127.0.0.1:5000/profile/john上发出GET请求时,它没有给出响应并且发生了错误(“连接到http://时出现错误127.0.0.1:5000/profile/john。“)
我希望有人能帮助我,在此先感谢!

uhopper.py

from flask import Flask, request
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)

john = {
    "http://en.wikipedia.org/wiki/Category:Writers_from_Belfast": 1,
    "http://en.wikipedia.org/wiki/Category:People_educated_at_Newstead_Wood_School": 2,
}

mac = {
    "http://en.wikipedia.org/wiki/Category:1998_establishments_in_New_York": 1,
    "http://en.wikipedia.org/wiki/Category:Public_Interest_Research_Groups": 1,
}

class Profile(Resource):
    def get(self, name):
        if name == 'john':
            return john, 200
        elif name == 'mac':
            return mac, 200
        return "Not found", 400

api.add_resource(Profile, "/profile/<string:name>")

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')

requirements.txt

Flask>=1.1.1
Flask-RESTful>=0.3.7

Docker文件

FROM python:3.7

WORKDIR /uhopper
COPY . .

RUN pip install -r requirements.txt

ENTRYPOINT ["python"]
CMD ["uhopper.py"]

这是我的Git Bash: 在此处输入图片说明

达兹·威尔金

您缺少Flask导入:

from flask import Flask

您可以对Dockerfile重新排序以保存复制路径:

FROM python:3.7

WORKDIR /uhopper
COPY . .

RUN pip install -r requirements.txt

ENTRYPOINT ["python"]
CMD ["uhopper.py"]

我认为使用绝对路径是一种好习惯 CMD ["/uhopper/uhopper.py"]

我鼓励您也指定(至少最低)导入版本:

Flask>=1.1.1
Flask-RESTful>=0.3.7

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法从主机连接到Docker上的Flask应用

Docker Flask无法连接

无法访问Docker REST API上的WordPress 4.8

尝试在Docker上运行简单的快递服务器,但无法访问任何路由

无法访问在Docker中运行的服务

从Flask运行NPM构建

Python Flask Docker迁移

Docker容器正在运行,但无法访问它们

限制对Flask REST API的访问

无法访问Azure虚拟机上托管的Flask服务器

无法在Docker上运行Flask(ModuleNotFoundError)

Ubuntu 18.04 Flask无法访问端口5000上的api端点

使用SQLAlchemy和Flask无法访问HTML中的backref参数

为什么子线程无法访问flask_login中的current_user变量?

Flask API端点无法从Docker访问

即使在Flask和Flask Migrate中也无法在Docker中运行入口点脚本

Python Flask无法访问Blueprint中的应用

API调用返回正文,但无法访问属性

Flask Python:MySQLdb,%s无法访问数据库(以防止SQL注入)

从 Flask 访问 img

无法使用 apache 访问 Flask

无法在 Windows 上从 git bash 运行 Flask 应用程序

Docker 正在运行,但我无法访问 localhost - Flask 应用程序

Flask 代码单独运行,但当使用 docker 容器化时,页面无法访问

使用 Flask 作为 Web 框架无法访问此站点 http://127.0.0.1:8000/hello

无法访问通过 docker 在 Postman 中的端口 80 上运行的 API

Docker/Flask:开发服务器在本地主机上运行良好,但无法访问外部 URL

从程序运行 Flask 蓝图

在 Docker 上运行时 Flask 应用程序 ImportError