# Build Stage - Usiamo Debian slim per evitare errori di librerie mancanti FROM node:20-slim as build WORKDIR /app # Copiamo i file di definizione delle dipendenze COPY package*.json ./ # Puliamo la cache di npm e installiamo le dipendenze # L'uso di && concatena i comandi per ridurre i layer RUN npm cache clean --force && npm install # Copiamo tutto il resto del codice sorgente COPY . . # Eseguiamo la build di Vite RUN npm run build # Production Stage - Nginx va bene Alpine perché serve solo file statici FROM nginx:alpine # Copia la configurazione Nginx custom COPY nginx.conf /etc/nginx/conf.d/default.conf # Copia i file compilati dalla fase di build nella cartella di Nginx COPY --from=build /app/dist /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]