FROM python:3.12-slim AS base WORKDIR /app RUN pip install uv FROM base AS development ENV PYTHONPATH=/app/src COPY pyproject.toml . RUN uv sync COPY . . CMD ["uv", "run", "uvicorn", "rehearsalhub.main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"] FROM base AS lint COPY pyproject.toml . RUN uv sync --frozen COPY src/ src/ RUN uv run ruff check src/ && uv run mypy src/ FROM base AS production COPY pyproject.toml . RUN uv sync --no-dev --frozen || uv sync --no-dev COPY . . ENTRYPOINT ["sh", "entrypoint.sh"] CMD ["uv", "run", "uvicorn", "rehearsalhub.main:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "2"]