FROM python:3.11-slim # Runtime defaults for Python and Streamlit in containers. ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PIP_NO_CACHE_DIR=1 WORKDIR /app # Install Python dependencies first for better layer caching. COPY requirements.txt ./ RUN pip install --upgrade pip \ && pip install -r requirements.txt # Copy app source. COPY app.py ./ EXPOSE 8501 HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8501/_stcore/health', timeout=3)" CMD ["streamlit", "run", "app.py", "--server.address=0.0.0.0", "--server.port=8501"]