mirror of
https://github.com/Rainyy21/k3s-health-dashboard.git
synced 2026-10-10 23:00:19 -04:00
33 lines
1.2 KiB
Docker
33 lines
1.2 KiB
Docker
# ── Stage 1: deps ─────────────────────────────────────────────────────────────
|
|
FROM python:3.12-slim AS deps
|
|
|
|
COPY requirements.txt .
|
|
|
|
RUN pip install --no-cache-dir --prefix=/install -r requirements.txt
|
|
|
|
# ── Stage 2: runtime ──────────────────────────────────────────────────────────
|
|
|
|
FROM python:3.12-slim AS runtime
|
|
|
|
RUN useradd --create-home --shell /bin/bash app
|
|
WORKDIR /home/app
|
|
|
|
COPY --from=deps /install /usr/local
|
|
|
|
COPY app/ ./app/
|
|
COPY app.py .
|
|
|
|
|
|
# Streamlit writes its own config here — ensure the user owns it
|
|
RUN mkdir -p /home/app/.streamlit && chown -R app:app /home/app
|
|
|
|
USER app
|
|
|
|
EXPOSE 8501
|
|
|
|
# --server.headless=true suppresses the "want to contribute?" prompt
|
|
# --server.address=0.0.0.0 listens on all interfaces (required inside a pod)
|
|
# --server.fileWatcherType=none disables inotify — not useful in a container
|
|
CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0", "--server.headless=true", "--server.fileWatcherType=none"]
|
|
|