# Use Debian-based image so better-sqlite3 prebuilds (glibc) work; Alpine/musl has no prebuilds. FROM node:20-bookworm-slim AS builder RUN corepack enable && corepack prepare pnpm@latest --activate WORKDIR /app COPY package.json pnpm-lock.yaml* ./ RUN pnpm install COPY . . RUN pnpm run build FROM node:20-bookworm-slim RUN corepack enable && corepack prepare pnpm@latest --activate WORKDIR /app ENV NODE_ENV=production COPY package.json pnpm-lock.yaml* ./ RUN pnpm install --prod COPY --from=builder /app/dist ./dist EXPOSE 8080 CMD ["node", "dist/index.js"]