# Stage 1: Build FROM node:{{NODE_VERSION}}-alpine AS builder WORKDIR /app COPY package.json package-lock.json* ./ RUN npm ci COPY . . RUN npm run build # Stage 2: Production FROM node:{{NODE_VERSION}}-alpine WORKDIR /app # Copy package files and install production dependencies COPY package.json package-lock.json* ./ RUN npm ci --omit=dev # Copy built files from builder COPY --from=builder /app/dist ./dist # Copy server file COPY server.mjs ./server.mjs # Set environment ENV NODE_ENV=production ENV PORT={{PORT}} ENV DIST_DIR=/app/dist EXPOSE {{PORT}} CMD ["node", "server.mjs"]