# ========================================== # Bước 1: Build Image (Clone code và cài đặt) # ========================================== FROM node:20-alpine AS builder # Cài đặt git để lấy mã nguồn từ GitHub RUN apk add --no-cache git libc6-compat WORKDIR /app # Clone trực tiếp mã nguồn từ repo của bạn RUN git clone https://github.com/wynriu/8thang3.git . # Cài đặt các thư viện (dependencies) RUN npm install # Vô hiệu hóa Next.js telemetry để tăng tốc quá trình build ENV NEXT_TELEMETRY_DISABLED=1 # Build dự án Next.js RUN npm run build # ========================================== # Bước 2: Production Image (Môi trường chạy) # ========================================== FROM node:20-alpine AS runner WORKDIR /app # Thiết lập môi trường Production ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 # Cấu hình Port bắt buộc cho Hugging Face Spaces (Port 7860) ENV PORT=7860 ENV HOSTNAME="0.0.0.0" EXPOSE 7860 # ĐÃ BỎ DÒNG COPY PUBLIC VÌ DỰ ÁN KHÔNG CÓ THƯ MỤC NÀY # Copy các thư mục và file cấu hình cần thiết từ giai đoạn builder COPY --from=builder /app/.next ./.next COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/package.json ./package.json # Lệnh khởi chạy server Next.js ở chế độ production CMD ["npm", "start"]