# ===== 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 TOUTES LES SOURCES (server + public + manifest) COPY --chown=node:node server.js ./ COPY --chown=node:node package.json ./ COPY --chown=node:node manifest.json ./ COPY --chown=node:node public ./public # 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"]