Files
k3s-health-dashboard/Dockerfile
T
2026-05-12 16:08:51 -04:00

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"]