FROM node:22-alpine AS builder
WORKDIR /app
COPY . .
# Mode non-interactif (évite prompts/erreurs pnpm/nvm sur image/docker/non-TTY)
ENV CI="true" PNPM_HOME="/root/.pnpm-global" \
    NPM_CONFIG_INTERACTIVE="false" \
    NODE_ENV="production" \
    PNPM_ENABLE_PRE_POST_SCRIPTS="true"
# On installe aussi les devDependencies pour build
RUN npm install -g pnpm && pnpm install --frozen-lockfile && pnpm run build

FROM node:22-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY package.json ./package.json
COPY pnpm-lock.yaml ./pnpm-lock.yaml
ENV CI="true" PNPM_HOME="/root/.pnpm-global" \
    NPM_CONFIG_INTERACTIVE="false" \
    NODE_ENV="production"
RUN npm install -g pnpm && pnpm install --prod --frozen-lockfile
ENTRYPOINT ["node", "dist/cli/index.js"]