CV_insectClassifier / Dockerfile
diahretnoutami
Initial project commit for insect classifier
62d3e16
# 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"]