File size: 976 Bytes
90e86ad
a0a2171
 
8c18929
a37bb00
e2946e7
a37bb00
90e86ad
a0a2171
a37bb00
0fda5b8
a104c56
90e86ad
 
 
 
 
 
a104c56
a2e1827
8c18929
a104c56
 
90e86ad
 
a104c56
 
 
90e86ad
 
fd400c0
a2e1827
a37bb00
a0a2171
e2946e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# ===== 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"]