FROM node:20-alpine AS deps WORKDIR /app COPY package*.json ./ RUN npm ci FROM node:20-alpine AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . ENV NODE_ENV=production RUN npm run build && npm cache clean --force FROM node:20-alpine AS runner RUN addgroup -S appgroup && adduser -S appuser -G appgroup WORKDIR /app COPY --from=builder --chown=appuser:appgroup /app/.output ./.output USER appuser ENV NODE_ENV=production EXPOSE 3000 CMD ["node", ".output/server/index.mjs"]