# ===== BUILD STAGE ===== FROM node:22-alpine AS builder WORKDIR /app RUN apk add --no-cache python3 make g++ sqlite-dev vips-dev COPY package*.json ./ RUN --mount=type=cache,target=/root/.npm npm install --omit=dev # ===== RUNTIME STAGE ===== FROM node:22-alpine WORKDIR /app # Dépendances runtime natives RUN apk add --no-cache \ sqlite-libs \ vips \ libstdc++ \ && mkdir -p /app/tfjs_wasm # Copie modules compilés (sharp, better-sqlite3, tfjs, etc.) COPY --from=builder --chown=node:node /app/node_modules ./node_modules # 🔑 COPIE LES FICHIERS WASM DEPUIS NODE_MODULES (Zéro download, 100% fiable) RUN cp -r /app/node_modules/@tensorflow/tfjs-backend-wasm/dist/* /app/tfjs_wasm/ && \ chown -R node:node /app/tfjs_wasm # Copie sources COPY --chown=node:node server.js public.html ./ # Dossiers data RUN mkdir -p /data /data/temp /data/thumbs && chown -R node:node /data USER node EXPOSE 7860 ENV NODE_ENV=production CMD ["node", "server.js"]