# Build stage FROM node:20-alpine AS builder # Set working directory WORKDIR /app # Copy package files COPY package*.json ./ COPY tsconfig.json ./ # Install all dependencies (including dev dependencies for building) RUN npm ci # Copy source code COPY src/ ./src/ # Build the application RUN npm run build # Production stage FROM node:20-alpine AS production # Set working directory WORKDIR /app # Copy package files COPY package*.json ./ # Install production dependencies only RUN npm ci --only=production # Copy built application from builder stage COPY --from=builder /app/dist ./dist # Expose port EXPOSE 3000 # Start the application CMD ["npm", "start"]