# Docker build → NPM publish (Node 20 + pnpm) FROM node:20-alpine AS build WORKDIR /app RUN corepack enable # Cache devenv COPY package.json pnpm-lock.yaml ./ RUN pnpm install --frozen-lockfile # Build COPY . . ENV NODE_ENV=production RUN pnpm run build # Enxugar node_modules para produção FROM node:20-alpine AS prod-deps WORKDIR /app COPY package.json pnpm-lock.yaml ./ RUN corepack enable && pnpm install --frozen-lockfile --prod --ignore-scripts # Stage final — mínimo FROM node:20-alpine WORKDIR /app ENV NODE_ENV=production COPY --from=prod-deps /app/node_modules ./node_modules COPY --from=build /app/dist ./dist COPY package.json ./ EXPOSE 3000 CMD ["node", "dist/index.js"]