FROM python:3.12-slim AS builder WORKDIR /build COPY pyproject.toml . COPY src/ src/ COPY dashboard/ dashboard/ RUN pip install --no-cache-dir ".[dashboard]" FROM python:3.12-slim WORKDIR /app RUN useradd --create-home appuser COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages COPY --from=builder /usr/local/bin /usr/local/bin COPY src/ src/ COPY dashboard/ dashboard/ COPY pyproject.toml . RUN chown -R appuser:appuser /app USER appuser EXPOSE 8501 HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8501/_stcore/health')" ENTRYPOINT ["streamlit", "run", "dashboard/app.py", \ "--server.port=8501", "--server.address=0.0.0.0", \ "--server.headless=true", "--browser.gatherUsageStats=false"]