# ── Build context: archit-app-main/ (the parent directory) ──────────────────
# Run from the repo root:
#   docker build -f archit-studio/Dockerfile -t archit-studio .
#
# Or use docker-compose (recommended):
#   docker compose -f archit-studio/docker-compose.yml up
# ─────────────────────────────────────────────────────────────────────────────

FROM python:3.11-slim

# System libraries required by transitive dependencies
#   libgeos-dev  → shapely (geometry engine used by archit-app)
#   libgl1       → some Pillow/image extras
RUN apt-get update && apt-get install -y --no-install-recommends \
        libgeos-dev \
        libgl1 \
    && rm -rf /var/lib/apt/lists/*

COPY archit-studio/ /app/archit-studio/

# archit-app is pulled from PyPI as a dependency of archit-studio
RUN pip install --no-cache-dir "/app/archit-studio[io,image,pdf,analysis]"

WORKDIR /app/archit-studio

# Persist session data outside the container
VOLUME ["/app/archit-studio/data/sessions"]

EXPOSE 8000

# Run Chainlit, binding to all interfaces so Docker can forward the port
CMD ["python", "-m", "chainlit", "run", "studio/ui/app.py", \
     "--host", "0.0.0.0", "--port", "8000"]
