Kartikeya Mishra
Use Node 22 for Space frontend build
260cd87
Raw
History Blame Contribute Delete
1.07 kB
# Stage 1: Build the React Frontend
FROM node:22 AS frontend-build
WORKDIR /app/frontend
# Copy package files and install dependencies
COPY frontend/package.json frontend/package-lock.json* ./
RUN npm install
# Copy frontend source and build
COPY frontend/ ./
RUN npm run build
# Stage 2: Setup Python Runtime
FROM python:3.10-slim
WORKDIR /app
# Install system dependencies required for OpenCV
RUN apt-get update && apt-get install -y --no-install-recommends \
libglib2.0-0 \
libsm6 \
libxext6 \
libxrender-dev \
&& rm -rf /var/lib/apt/lists/*
# Install Python dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy backend and ML components
COPY backend/ ./backend/
COPY features.py predict.py model.joblib model_metadata.json ./
# Copy the built frontend from Stage 1
COPY --from=frontend-build /app/frontend/dist /app/frontend/dist
# Expose port required by Hugging Face Spaces
EXPOSE 7860
# Command to run the application
CMD ["uvicorn", "backend.app:app", "--host", "0.0.0.0", "--port", "7860"]