24 lines
873 B
Docker
24 lines
873 B
Docker
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"]
|