# Hugging Face Spaces — quote-api # Port wajib 7860 sesuai requirement HF Spaces Docker. FROM node:22-bookworm AS builder WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential g++ make python3 \ libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev libpixman-1-dev pkg-config \ && rm -rf /var/lib/apt/lists/* COPY package*.json ./ RUN npm ci --omit=dev # ── Runtime stage ────────────────────────────────────────────── FROM node:22-bookworm-slim WORKDIR /app ENV NODE_ENV=production # HF Spaces hanya expose port 7860 ENV PORT=7860 RUN apt-get update && apt-get install -y --no-install-recommends \ fonts-noto fonts-noto-cjk fonts-noto-extra fontconfig \ libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libjpeg62-turbo libgif7 librsvg2-2 libpixman-1-0 libvips42 \ ffmpeg curl \ && rm -rf /var/lib/apt/lists/* \ && fc-cache -f -v # Pakai user 'node' bawaan image (UID 1000) — tidak perlu buat user baru COPY --from=builder /app/node_modules ./node_modules COPY --chown=node:node . . USER node EXPOSE 7860 HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \ CMD curl -f http://localhost:7860/health || exit 1 CMD ["node", "index.js"]