Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5641b3e740 | |||
| 9317a1baae | |||
| 6f6d90aa60 | |||
| 83a45795c3 | |||
| 572c52dada | |||
| 909655c10a | |||
| c71667cd41 |
@@ -5,6 +5,9 @@ WORKDIR /app
|
||||
# Bricktracker
|
||||
COPY . .
|
||||
|
||||
# Fix line endings and set executable permissions for entrypoint script
|
||||
RUN sed -i 's/\r$//' entrypoint.sh && chmod +x entrypoint.sh
|
||||
|
||||
# Python library requirements
|
||||
RUN pip --no-cache-dir install -r requirements.txt
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# This need to be first
|
||||
import eventlet
|
||||
eventlet.monkey_patch()
|
||||
import gevent.monkey
|
||||
gevent.monkey.patch_all()
|
||||
|
||||
import logging # noqa: E402
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ class BrickSocket(object):
|
||||
*args,
|
||||
**kwargs,
|
||||
path=app.config['SOCKET_PATH'],
|
||||
async_mode='eventlet',
|
||||
async_mode='gevent',
|
||||
)
|
||||
|
||||
# Store the socket in the app config
|
||||
|
||||
@@ -25,6 +25,7 @@ def update() -> Response:
|
||||
BrickSet(),
|
||||
minifigure=BrickMinifigure(record={
|
||||
'set_img_url': None,
|
||||
'image': None,
|
||||
})
|
||||
).download()
|
||||
|
||||
@@ -33,7 +34,9 @@ def update() -> Response:
|
||||
BrickSet(),
|
||||
part=BrickPart(record={
|
||||
'part_img_url': None,
|
||||
'part_img_url_id': None
|
||||
'part_img_url_id': None,
|
||||
'image_id': None,
|
||||
'image': None,
|
||||
})
|
||||
).download()
|
||||
|
||||
|
||||
+1
-1
@@ -13,4 +13,4 @@ then
|
||||
fi
|
||||
|
||||
# Execute the WSGI server
|
||||
gunicorn --bind "${BK_SERVER}:${BK_PORT}" "app:create_app()" --worker-class "eventlet" "$@"
|
||||
gunicorn --bind "${BK_HOST}:${BK_PORT}" "wsgi:application" --worker-class "gevent" --workers 1 "$@"
|
||||
|
||||
@@ -2,6 +2,7 @@ eventlet
|
||||
flask
|
||||
flask_socketio
|
||||
flask-login
|
||||
gevent
|
||||
gunicorn
|
||||
humanize
|
||||
jinja2
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
WSGI entry point for BrickTracker - Production Docker deployment
|
||||
This ensures proper gevent monkey patching before any imports
|
||||
"""
|
||||
|
||||
# CRITICAL: Monkey patch must be first, before ANY other imports
|
||||
import gevent.monkey
|
||||
gevent.monkey.patch_all()
|
||||
|
||||
# Now import the regular app factory
|
||||
from app import create_app
|
||||
|
||||
# Create the application - this will be a BrickSocket instance
|
||||
app_instance = create_app()
|
||||
|
||||
# For gunicorn, we need the Flask app, not the BrickSocket wrapper
|
||||
application = app_instance.app if hasattr(app_instance, 'app') else app_instance
|
||||
Reference in New Issue
Block a user