FROM python:3.13.5-slim WORKDIR /app RUN apt-get update && apt-get install -y \ build-essential \ curl \ git \ && rm -rf /var/lib/apt/lists/* # Install uv (multi-stage copy from the official image — no curl/install scripts). COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ # Resolve and install dependencies from the lockfile (production: no dev group). COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-dev COPY src/ ./src/ EXPOSE 8501 HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health ENTRYPOINT ["uv", "run", "--no-sync", "streamlit", "run", "src/app.py", "--server.port=8501", "--server.address=0.0.0.0"]