# syntax=docker/dockerfile:1
FROM python:3.12-slim AS dependencies-build

WORKDIR /app

COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv

COPY pyproject.toml uv.lock ./
RUN uv sync --frozen --no-dev --no-install-project

# ── Runtime ────────────────────────────────────────────────────────────────────
FROM python:3.12-slim AS runtime

WORKDIR /app

COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
COPY --from=dependencies-build /app/.venv /app/.venv

COPY pyproject.toml uv.lock README.md ./
COPY src/ ./src/

EXPOSE 8000

CMD ["uv", "run", "python", "-m", "metaverse.server"]
