# Build stage FROM node:20-alpine AS builder WORKDIR /app # Copy package files and install all dependencies (including devDependencies for TypeScript) COPY package*.json ./ RUN npm install # Copy source code and build COPY . . RUN npm run build # Production stage FROM node:20-alpine WORKDIR /app # Copy package files and install ONLY production dependencies COPY package*.json ./ RUN npm install --omit=dev # Copy built code from the builder stage COPY --from=builder /app/dist ./dist # Expose the port the app runs on EXPOSE 3000 # Command to run the application CMD ["npm", "start"]