# ----------------------------- # 1) Build stage # ----------------------------- FROM node:20-alpine AS builder WORKDIR /app # Copio solo package.json per sfruttare la cache Docker COPY package*.json ./ # Installa solo le dipendenze necessarie RUN npm ci --only=production # Copio il resto del codice COPY . . # ----------------------------- # 2) Runtime stage # ----------------------------- FROM node:20-alpine WORKDIR /app # Copio solo node_modules dal builder COPY --from=builder /app/node_modules ./node_modules # Copio il codice applicativo COPY --from=builder /app ./ # Utente non-root per sicurezza RUN addgroup -S appgroup && adduser -S appuser -G appgroup USER appuser # Porta interna del backend (3000) EXPOSE 11001 # Avvio del server CMD ["node", "index.js"]