Man*_*anu 5 python flask docker
我遇到了 docker 问题,我按照官方 docker 教程部署了一个 Web 应用程序(幸运的是 python/flask ),但是当我尝试部署我的应用程序时,当我到达连接部分时,它失败并回复“连接”已重置”
\n\n代码
\n\n import json\n import threading\n import thread\n import io\n\n from flask import Flask, render_template, request\n from flask_socketio import SocketIO\n\n # Global variables\n app = Flask(__name__)\n\n lock = threading.Semaphore(0)\n IOCReplay.lock = lock\n\n async_mode = None\n socketio = SocketIO(app)\n IOCReplay.socketio = socketio\n\n\n @app.route("/")\n def root():\n return render_template(\'index.html\')\n\n @app.route("/dependencies")\n def getDependencies():\n data = \'\'\n with open(\'./dependencies.json\') as data_file:\n data = json.load(data_file)\n\n return json.dumps(data)\n\n if __name__ == "__main__":\n socketio.run(app, port=5000)\nRun Code Online (Sandbox Code Playgroud)\n\n docker run -d -P guitest:1\n 6d95689601b8(...)\n\n docker ps\n CONTAINER ID IMAGE COMMAND \n 6d95689601b8 guitest:1 "python test.py" \n\n CREATED STATUS PORTS NAMES\n 4 seconds ago Up 2 seconds 0.0.0.0:32771->5000/tcp loving_boyd\n\nRun Code Online (Sandbox Code Playgroud)\n\nDockerfile 没问题。
\n\n因此,当我登录 0.0.0.0:32771 时,它显示“连接已重置”
\n\n我从 docker FAQ 中看到,要解决这个问题,我必须“更改 [my] localhost 上的 service\xe2\x80\x99s 配置,以便该服务接受来自所有 IP 的请求”
\n好吧,我已经解决了所有问题!感谢@n2o
问题是 socketio.run(app) 的参数不正确
以前的:
from flask import Flask, render_template, request
from flask_socketio import SocketIO
# Code here #
if __name__ == "__main__":
socketio.run(app, port=5000)
Run Code Online (Sandbox Code Playgroud)
固定的:
import os
from flask import Flask, render_template, request
from flask_socketio import SocketIO
# code here #
if __name__ == "__main__":
port = int(os.environ.get('PORT', 5000))
socketio.run(app, host='0.0.0.0', port=port)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11929 次 |
| 最近记录: |