FROM node:18 # Cài đặt system dependencies RUN apt-get update && apt-get install -y \ python3 \ make \ g++ \ cmake \ wget \ build-essential \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # Copy package files COPY package*.json ./ # Cài đặt npm dependencies # --unsafe-perm để đảm bảo script postinstall (như node-llama-cpp download) chạy được dưới quyền root RUN npm install --unsafe-perm # Copy code COPY . . # Tạo thư mục models RUN mkdir -p models # Tải model thủ công bằng wget thay vì npx (ổn định hơn trong docker) # URL trực tiếp từ Hugging Face RUN wget -O models/Qwen3-1.7B-Q8_0.gguf https://huggingface.co/Qwen/Qwen3-1.7B-GGUF/resolve/main/Qwen3-1.7B-Q8_0.gguf?download=true # Force rebuild node-llama-cpp RUN npm rebuild node-llama-cpp EXPOSE 7860 CMD ["node", "server.js"]