| FROM node:18-bullseye-slim | |
| # Instalasi dependensi sistem (zstd untuk Ollama) | |
| RUN apt-get update && apt-get install -y curl zstd && rm -rf /var/lib/apt/lists/* | |
| # Instalasi Ollama resmi | |
| RUN curl -fsSL https://ollama.com/install.sh | sh | |
| # Setup direktori kerja | |
| WORKDIR /app | |
| # Pastikan folder milik user node (UID 1000) | |
| RUN chown -R node:node /app | |
| # Copy dependensi terpisah untuk caching layer | |
| COPY --chown=node:node package*.json ./ | |
| RUN npm install --production | |
| # Salin seluruh isi folder kita (termasuk folder 'public' yang sudah kita buat) | |
| COPY --chown=node:node . . | |
| # Izin eksekusi untuk startup script | |
| RUN chmod +x start.sh | |
| # Jalankan sebagai user node (standard 1000 untuk HF) | |
| USER node | |
| # Port wajib Hugging Face | |
| EXPOSE 7860 | |
| # Jalankan skrip fusi Start.sh | |
| CMD ["./start.sh"] | |