FROM python:3.13-slim # Set up user RUN useradd -m -u 1000 user USER user ENV PATH="/home/user/.local/bin:$PATH" ENV HOME="/home/user" # Install uv COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ # Set working directory WORKDIR $HOME/app # Copy project files COPY --chown=user pyproject.toml uv.lock ./ COPY --chown=user README.md ./ COPY --chown=user src/ src/ # Install dependencies RUN uv sync --no-dev --group leaderboard # Configure Gradio to work with Hugging Face Spaces ENV GRADIO_SERVER_NAME="0.0.0.0" ENV GRADIO_SERVER_PORT=7860 # Expose port EXPOSE 7860 # Run the app CMD ["uv", "run", "--no-dev", "--group", "leaderboard", "src/mlops_mentor/leaderboard/app.py"]