服务烧瓶应用程序与女服务员和 docker
serving flask app with waitress and docker
我正在使用 docker 提供一个烧瓶应用程序,但是 docker logs
命令显示该应用程序正在 运行ning 在 development
服务器上。我想用 waitress
.
为这个应用程序提供服务
项目结构如下。 docker-compose.yml
文件构建镜像,公开端口和 运行 manage.py
文件
docker-compose.yml
web:
build: .
image: web
container_name: web
ports:
- 8080:5000
command: python manage.py run -h 0.0.0.0
manage.py
文件导入 create_app
并将其提供给 FLaskGroup
from flask.cli import FlaskGroup
from project.server import create_app
app = create_app()
cli = FlaskGroup(create_app=create_app)
if __name__ == "__main__":
cli()
project/server/__init__.py
文件导入 main_blueprint
并注册它。
from project.server.main.views import main_blueprint
from flask import Flask
import os
def create_app(script_info=None):
app = Flask(
__name__,
template_folder="../client/templates",
static_folder="../client/static",
)
app_settings = os.getenv("APP_SETTINGS")
app.config.from_object(app_settings)
app.register_blueprint(main_blueprint)
app.shell_context_processor({"app": app})
return app
project/server/main/views.py
from flask import render_template, Blueprint, jsonify, request
main_blueprint = Blueprint("main", __name__,)
@main_blueprint.route("/", methods=["GET"])
def home():
return render_template("pages/home.html")
@main_blueprint.route("/test", methods=["GET"])
def parse():
return jsonify({"result": "test"}), 202
如何修改现有代码以使用 waitress
为 flask
应用程序提供服务?谢谢。
你运行使用python manage.py run -h 0.0.0.0
,它使用经典flask run
。您应该使用服务员命令 运行 您的应用。
This doc 可能对您有帮助。
我通过更改 docker-compose.yml
文件得到它 运行:
command
python manage.py run -h 0.0.0.0
到 waitress-serve --call "project.server:create_app"
port
8080:5000
到 8080:8080
docker-compose.yml
文件现在如下所示:
web:
build: .
image: web
container_name: web
ports:
- 8080:8080
command: waitress-serve --call "project.server:create_app"
我正在使用 docker 提供一个烧瓶应用程序,但是 docker logs
命令显示该应用程序正在 运行ning 在 development
服务器上。我想用 waitress
.
项目结构如下。 docker-compose.yml
文件构建镜像,公开端口和 运行 manage.py
文件
docker-compose.yml
web:
build: .
image: web
container_name: web
ports:
- 8080:5000
command: python manage.py run -h 0.0.0.0
manage.py
文件导入 create_app
并将其提供给 FLaskGroup
from flask.cli import FlaskGroup
from project.server import create_app
app = create_app()
cli = FlaskGroup(create_app=create_app)
if __name__ == "__main__":
cli()
project/server/__init__.py
文件导入 main_blueprint
并注册它。
from project.server.main.views import main_blueprint
from flask import Flask
import os
def create_app(script_info=None):
app = Flask(
__name__,
template_folder="../client/templates",
static_folder="../client/static",
)
app_settings = os.getenv("APP_SETTINGS")
app.config.from_object(app_settings)
app.register_blueprint(main_blueprint)
app.shell_context_processor({"app": app})
return app
project/server/main/views.py
from flask import render_template, Blueprint, jsonify, request
main_blueprint = Blueprint("main", __name__,)
@main_blueprint.route("/", methods=["GET"])
def home():
return render_template("pages/home.html")
@main_blueprint.route("/test", methods=["GET"])
def parse():
return jsonify({"result": "test"}), 202
如何修改现有代码以使用 waitress
为 flask
应用程序提供服务?谢谢。
你运行使用python manage.py run -h 0.0.0.0
,它使用经典flask run
。您应该使用服务员命令 运行 您的应用。
This doc 可能对您有帮助。
我通过更改 docker-compose.yml
文件得到它 运行:
command
python manage.py run -h 0.0.0.0
到 waitress-serve --call "project.server:create_app"
port
8080:5000
到 8080:8080
docker-compose.yml
文件现在如下所示:
web:
build: .
image: web
container_name: web
ports:
- 8080:8080
command: waitress-serve --call "project.server:create_app"