# ✅ Gunakan Python 3.10 (versi stabil & didukung Streamlit) FROM python:3.10-slim # Non-interactive mode ENV DEBIAN_FRONTEND=noninteractive \ PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 # Install deps minimal (tanpa build-essential berat) RUN apt-get update && apt-get install -y --no-install-recommends \ curl \ git \ libgl1 \ && rm -rf /var/lib/apt/lists/* # Set workdir WORKDIR /app # Salin requirements & install COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Salin file app (langsung di root — bukan src/) COPY app.py . COPY df_final.xlsx . # Port Streamlit (HF pakai 7860 atau 8501 — keduanya oke) EXPOSE 8501 # ✅ HEALTHCHECK aman: gunakan python, bukan curl HEALTHCHECK --interval=30s --timeout=5s --start-period=60s --retries=3 \ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8501/_stcore/health', timeout=3)" # ✅ ENTRYPOINT: tambahkan opsi headless & server address ENTRYPOINT ["streamlit", "run", "app.py", \ "--server.port=8501", \ "--server.address=0.0.0.0", \ "--server.headless=true", \ "--browser.serverAddress=0.0.0.0", \ "--browser.gatherUsageStats=false"]