api-rasaya-ml / Dockerfile
adoravelc's picture
Update Dockerfile
4040596 verified
# Gunakan Python 3.9
FROM python:3.9
# Buat user baru (keamanan Hugging Face)
RUN useradd -m -u 1000 user
WORKDIR /app
# --- SETTING PENTING: Kasih tahu NLTK harus cari data di mana ---
ENV NLTK_DATA=/app/nltk_data
# Install Library
COPY --chown=user requirements.txt requirements.txt
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir -r requirements.txt
# --- DOWNLOAD NLTK DATA (FIX ERROR) ---
# Kita buat foldernya dulu
RUN mkdir -p /app/nltk_data
# Download Stopwords, Punkt, dan VADER (sesuai request error log)
# -d /app/nltk_data artinya: "Download ke folder ini woy!"
RUN python -m nltk.downloader -d /app/nltk_data stopwords punkt punkt_tab vader_lexicon
# --------------------------------------
# Atur Izin (Permission) agar user bisa baca/tulis
RUN chown -R user:user /app
RUN chmod -R 777 /app/nltk_data
# Setting Cache Transformers (biar model AI gak error permission)
RUN mkdir -p /app/cache
ENV TRANSFORMERS_CACHE=/app/cache
ENV HF_HOME=/app/cache
RUN chmod -R 777 /app/cache
# Copy sisa file project
COPY --chown=user . .
# Switch ke user biasa
USER user
# Buka Port
EXPOSE 7860
# Jalankan
CMD ["python", "app.py"]