# Use Python 3.10 for compatibility with newer packages
FROM python:3.10

# Install required system dependencies
RUN apt-get update && apt-get install -y \
    libgl1-mesa-glx \
    libglib2.0-0

RUN useradd user

USER user

ENV HOME=/home/user \
    PATH=/home/user/.local/bin:$PATH

# Set up a working directory
WORKDIR $HOME/app

COPY --chown=user ./ $HOME/app

# Install dependencies from the requirements file
RUN pip install --no-cache-dir --upgrade -r requirements.txt

# Install PyTorch and torchvision
RUN pip install torch torchvision

# Set environment variable to indicate PyTorch usage
ENV USE_TORCH=1 

# Expose port 7860 for the app
EXPOSE 7860

# Command to run FastAPI app with Uvicorn
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]