# Backend FastAPI de la demo. Instala la librería reconstruct3d con el extra
# 'api' y sirve uvicorn en :8000. Contexto de build = raíz del repo.
FROM python:3.12-slim

# Dependencias nativas de OpenCV (libGL/glib) que opencv-contrib-python necesita
# en runtime. Sin esto, importar cv2 falla con "libGL.so.1 not found".
RUN apt-get update && apt-get install -y --no-install-recommends \
        libgl1 \
        libglib2.0-0 \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

# hatch-vcs deriva la versión del tag git, pero aquí no copiamos .git. Le damos
# una versión fija de build para que la instalación no falle (es una imagen de
# demo, no el paquete publicado en PyPI).
ENV SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0

# Instalar solo la librería + backend. Copiamos lo mínimo para aprovechar caché.
COPY pyproject.toml README.md ./
COPY reconstruct3d ./reconstruct3d
RUN pip install --no-cache-dir ".[api]"

COPY backend ./backend

EXPOSE 8000
CMD ["uvicorn", "backend.app:app", "--host", "0.0.0.0", "--port", "8000"]
