# Slim Node.js 20 — no bloat FROM node:20-slim WORKDIR /app # Copy and install from lockfile (deterministic, uses prebuilt sharp binaries) COPY package.json package-lock.json ./ RUN npm ci --omit=dev # Copy application code (respects .dockerignore) COPY . . # Hugging Face requires port 7860 EXPOSE 7860 ENV PORT=7860 ENV NODE_OPTIONS="--dns-result-order=ipv4first" CMD ["node", "server.js"]