FROM node:20-alpine AS builder WORKDIR /app # Install pnpm RUN corepack enable && corepack prepare pnpm@9.15.0 --activate # Copy package files COPY package.json ./ # Install dependencies RUN pnpm install --ignore-scripts # Copy source COPY . . # Build RUN pnpm build # Production image FROM node:20-alpine WORKDIR /app # Install pnpm RUN corepack enable && corepack prepare pnpm@9.15.0 --activate # Copy package files and built code COPY --from=builder /app/package.json ./ COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/dist ./dist # Create data directory RUN mkdir -p /app/data # Run as non-root user RUN addgroup -g 1001 -S nodejs && \ adduser -S nestjs -u 1001 && \ chown -R nestjs:nodejs /app USER nestjs EXPOSE 3023 CMD ["node", "dist/main.js"]