From 72a608083039d206f431230e3d57e58e10cd9a9f Mon Sep 17 00:00:00 2001 From: DarkSlein Date: Tue, 1 Jul 2025 10:36:17 +0300 Subject: [PATCH] Added gunicorn --- Dockerfile | 8 ++++---- src/app.py | 13 ++++--------- src/infra/server.py | 14 -------------- 3 files changed, 8 insertions(+), 27 deletions(-) diff --git a/Dockerfile b/Dockerfile index c861b2d..0226354 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,10 +4,10 @@ WORKDIR /app COPY requirements.txt /app RUN pip3 install -r requirements.txt -RUN apt-get update && apt-get install -y libevent-dev +RUN apt-get update && apt-get install -y libevent-dev gcc + +RUN pip3 install gunicorn==21.2.0 gevent-websocket==0.10.1 COPY . . -ENV FLASK_APP=src/app.py - -CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0", "--port=5000"] \ No newline at end of file +CMD ["gunicorn", "-b", "0.0.0.0:5000", "-k", "geventwebsocket.gunicorn.workers.GeventWebSocketWorker", "--workers", "1", "src.app:app"] \ No newline at end of file diff --git a/src/app.py b/src/app.py index 0c3bd40..0752521 100644 --- a/src/app.py +++ b/src/app.py @@ -30,14 +30,9 @@ if db is not None: else: print('Failed to connect to MongoDB') +def create_app(): + return app + if __name__ == '__main__': #app.run(debug=True) - #socketio.run(app, host=Config.APP_HOST, debug=False) - run_simple( - Config.APP_HOST, - 5000, - socketio.run_handler(app), - use_reloader=False, - use_debugger=False, - use_evalex=False - ) \ No newline at end of file + socketio.run(app, host=Config.APP_HOST, debug=False) \ No newline at end of file diff --git a/src/infra/server.py b/src/infra/server.py index aaeea4d..834eea5 100644 --- a/src/infra/server.py +++ b/src/infra/server.py @@ -4,18 +4,4 @@ from flask_jwt_extended import JWTManager app = Flask(__name__) jwt = JWTManager(app) - -@app.before_request -def handle_preflight(): - if request.method == "OPTIONS": - response = app.make_default_options_response() - headers = { - 'Access-Control-Allow-Origin': '*', - 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', - 'Access-Control-Allow-Headers': 'Content-Type, Authorization' - } - for k, v in headers.items(): - response.headers[k] = v - return response - socketio = SocketIO(app, async_mode='gevent', cors_allowed_origins="*") \ No newline at end of file