FROM node:22-alpine AS builder WORKDIR /app # Corepack lit packageManager et installe exactement pnpm 10.4.1, version # compatible avec le lockfile. L'installation globale de pnpm récupérait une # version plus récente, incompatible avec les métadonnées figées du lockfile. COPY package.json pnpm-lock.yaml ./ COPY patches ./patches RUN npm install -g corepack@0.31.0 \ && corepack pnpm install --frozen-lockfile # Copier le reste du code et builder COPY . . RUN corepack pnpm build # ── Image de production ────────────────────────────────────────────────────── FROM node:22-alpine AS runner WORKDIR /app # Copier toutes les dépendances (y compris devDeps référencées dans le bundle comme vite) COPY --from=builder /app/node_modules ./node_modules # Copier le build COPY --from=builder /app/dist ./dist # Copier les fichiers de configuration nécessaires au runtime COPY drizzle ./drizzle COPY drizzle.config.ts ./ COPY package.json ./ EXPOSE 3000 ENV NODE_ENV=production CMD ["node", "dist/index.js"]