# =============================================================================
# Development Stage
# =============================================================================

    FROM node:22-alpine AS development

    WORKDIR /app

    COPY package*.json ./
    RUN npm install

    # Copy source
    COPY . .

    # Start dev server
    CMD ["npm", "run", "dev"]

# =============================================================================
# Build Stage
# =============================================================================

    FROM development as builder
    RUN npm run build

# =============================================================================
# Production Stage
# =============================================================================

    FROM node:22-alpine AS production

    # Set NODE_ENV to production
    ENV NODE_ENV=production

    WORKDIR /app
    COPY package*.json ./
    COPY --from=builder /app/dist ./dist

    # Install dependencies and prune
    RUN npm install --omit=dev && npm prune

    # Change to 1000 user
    RUN chown 1000:1000 /app

    # Switch user
    USER 1000:1000

    # Start prod server
    CMD ["node", "./dist/index.js"]
