diff --git a/Dockerfile b/Dockerfile index e1979c0..76c5a4a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,7 +32,7 @@ RUN uv venv && \ ENV FLASK_APP=main.py ENV FLASK_ENV=production ENV PATH="/app/.venv/bin:$PATH" -ENV GUNICORN_CMD_ARGS="--workers=4 --bind=0.0.0.0:5000 --timeout=120" +ENV GUNICORN_CMD_ARGS="--workers=1 --bind=0.0.0.0:5000 --timeout=120" # Expose port EXPOSE 5000 diff --git a/app/__init__.py b/app/__init__.py index 27b2d75..b978d6c 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -15,7 +15,10 @@ def create_app(): app.config.from_object(Config) # Ensure upload directory exists - os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True) + upload_path = os.path.join(app.static_folder, 'uploads') + os.makedirs(upload_path, exist_ok=True) + # Update config to use absolute path for file operations + app.config['UPLOAD_FOLDER'] = upload_path # Setup logging from app.utils.logging_config import setup_logging diff --git a/app/config.py b/app/config.py index 28b860f..64c7bd8 100644 --- a/app/config.py +++ b/app/config.py @@ -11,8 +11,8 @@ class Config: # Flask settings SECRET_KEY = os.environ.get('SECRET_KEY') or os.urandom(24) - # Upload settings - UPLOAD_FOLDER = os.environ.get('UPLOAD_FOLDER') or 'app/static/uploads' + # Upload settings + UPLOAD_FOLDER = os.environ.get('UPLOAD_FOLDER') or 'static/uploads' MAX_CONTENT_LENGTH = 16 * 1024 * 1024 # 16MB max file size ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif'} diff --git a/docker-compose.yml b/docker-compose.yml index a38ff51..93db27d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: environment: - FLASK_APP=main.py - FLASK_ENV=production - - GUNICORN_CMD_ARGS=--workers=4 --bind=0.0.0.0:5000 --timeout=120 --keep-alive=5 --worker-class=sync --worker-connections=1000 --max-requests=1000 --max-requests-jitter=50 + - GUNICORN_CMD_ARGS=--workers=1 --bind=0.0.0.0:5000 --timeout=120 --keep-alive=5 --worker-class=sync --worker-connections=1000 --max-requests=1000 --max-requests-jitter=50 # Application configuration - UPLOAD_FOLDER=app/static/uploads - DATABASE_PATH=pet_pictures.db diff --git a/main.py b/main.py index cb68abb..d038634 100644 --- a/main.py +++ b/main.py @@ -15,4 +15,5 @@ app = create_app() if __name__ == "__main__": # Development server configuration debug_mode = os.environ.get('FLASK_ENV') == 'development' - app.run(debug=debug_mode, host='0.0.0.0', port=5000) + port = int(os.environ.get('PORT', 5001)) # Use port 5001 to avoid AirPlay conflict + app.run(debug=debug_mode, host='0.0.0.0', port=port)