Spaces:
Sleeping
Sleeping
| # Gunakan image dasar Python yang ringan dan stabil | |
| # Python 3.9 adalah versi yang umum dan cocok dengan banyak pustaka AI | |
| FROM python:3.9-slim-buster | |
| # Atur direktori kerja di dalam container. | |
| # Semua operasi COPY dan RUN berikutnya akan dilakukan relatif terhadap direktori ini. | |
| WORKDIR /app | |
| # Salin file requirements.txt ke direktori kerja di container. | |
| # Melakukan ini terlebih dahulu memungkinkan Docker untuk melakukan caching layer | |
| # sehingga instalasi dependensi tidak perlu diulang jika hanya kode lain yang berubah. | |
| COPY requirements.txt . | |
| # Instal semua dependensi Python yang terdaftar di requirements.txt. | |
| # --no-cache-dir akan mencegah pip menyimpan cache unduhan, menghemat ruang. | |
| # -r requirements.txt membaca daftar paket dari file. | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # Salin semua file dan folder dari direktori lokal saat ini (root proyek kamu) | |
| # ke direktori kerja di dalam container (/app). | |
| # Ini termasuk main.py, model .h5, dan folder static/. | |
| COPY . . | |
| # Ekspos port yang akan digunakan aplikasi FastAPI kamu. | |
| # Hugging Face Spaces secara internal akan mengarahkan traffic ke port 7860. | |
| EXPOSE 7860 | |
| # Perintah untuk menjalankan aplikasi FastAPI kamu saat container dimulai. | |
| # "uvicorn" adalah server ASGI. | |
| # "main:app" berarti Uvicorn akan mencari objek bernama 'app' di file 'main.py'. | |
| # "--host 0.0.0.0" membuat aplikasi dapat diakses dari luar container. | |
| # "--port 7860" memastikan aplikasi mendengarkan pada port yang diharapkan oleh Hugging Face. | |
| CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"] |