room-visualizer-api / Dockerfile
Johnntirs's picture
Room Visualizer backend (Docker)
0cdb4e8
Raw
History Blame Contribute Delete
954 Bytes
# Backend container — runs the FastAPI app in mock mode (CPU only, no GPU).
# Works on Hugging Face Spaces (Docker), Render, Fly.io, Railway, etc.
FROM python:3.11-slim
# System libs needed by OpenCV (headless) at import time.
RUN apt-get update && apt-get install -y --no-install-recommends \
libgl1 libglib2.0-0 \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY backend/requirements.txt ./requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY backend/ ./
# Pre-render the catalog placeholder images at build time.
RUN python scripts/generate_catalog_images.py || true
ENV IMAGE_PROVIDER=mock \
PYTHONUNBUFFERED=1
# Hugging Face Spaces uses 7860; Render/Fly inject $PORT. Default to 7860.
# --proxy-headers makes request-based asset URLs come out as https behind the host proxy.
EXPOSE 7860
CMD ["sh", "-c", "uvicorn app.main:app --host 0.0.0.0 --port ${PORT:-7860} --proxy-headers --forwarded-allow-ips='*'"]