# 1. Gunakan "base image" resmi Python versi 3.10 yang ramping FROM python:3.10-slim # 2. Set label untuk mendeskripsikan image LABEL maintainer="suyagi" LABEL description="Docker image for an Indonesian Chatbot with IndoBART" # Set environment variable agar cache disimpan di dalam folder proyek kita ENV HF_HOME=/code/cache ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 # 3. Set direktori kerja di dalam container WORKDIR /code # 4. Salin file requirements.txt terlebih dahulu untuk optimisasi cache Docker COPY requirements.txt . # 5. Install semua library Python yang dibutuhkan RUN pip install --no-cache-dir -r requirements.txt # --- PERBAIKAN FINAL: Buat folder cache & beri izin tulis --- # Perintah ini secara eksplisit membuat direktori cache dan memberikan # izin baca/tulis/eksekusi kepada semua user. Ini memastikan # proses aplikasi nanti PASTI bisa menulis di sini. RUN mkdir -p /code/cache && chmod -R 777 /code/cache # ------------------------------------------------------------- # 6. Salin semua file proyek lainnya (app.py, dll.) ke dalam direktori kerja COPY . . # 7. Beri tahu Docker bahwa container akan mendengarkan di port 7860 (port default Gradio) EXPOSE 7860 # 8. Perintah yang akan dijalankan saat container start CMD ["python", "app.py", "--server_name", "0.0.0.0"]