# Gunakan image Python resmi yang stabil FROM python:3.10-slim # Tetapkan direktori kerja WORKDIR /code # Atur environment variables SEBELUM instalasi ENV NLTK_DATA=/data/nltk_data ENV MPLCONFIGDIR=/data/matplotlib_cache # Buat pengguna non-root dan direktori yang dibutuhkan RUN useradd --create-home --shell /bin/bash appuser && \ mkdir -p /data/static $NLTK_DATA $MPLCONFIGDIR && \ chown -R appuser:appuser /data # Ganti ke pengguna non-root yang baru kita buat USER appuser # --- PERUBAHAN DI SINI --- # Tambahkan path instalasi pip pengguna ke PATH sistem ENV PATH="/home/appuser/.local/bin:${PATH}" # Salin file requirements COPY --chown=appuser:appuser ./requirements.txt /code/requirements.txt # Install dependensi sebagai pengguna non-root RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt # Salin semua file aplikasi ke direktori kerja COPY --chown=appuser:appuser . /code/ # Jalankan NLTK Downloader. RUN python -m nltk.downloader -d $NLTK_DATA punkt stopwords punkt_tab # Jalankan aplikasi menggunakan Gunicorn CMD ["gunicorn", "--bind", "0.0.0.0:7860", "--timeout", "120", "app:app"]