KTI / Dockerfile
noranisa's picture
Upload 63 files
b66f2ff verified
Raw
History Blame Contribute Delete
1.17 kB
# 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"]