diff --git a/Dockerfile b/Dockerfile index 8c5e7b9..e07c484 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,24 +1,24 @@ -# Build Stage -FROM node:20-slim as build - -# Installiamo tool di compilazione necessari per alcune dipendenze Node (es. esbuild/vite) -RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/* +# Usa l'immagine completa di Node 20 per evitare errori di compilazione (gyp/libs mancanti) +FROM node:20 AS build WORKDIR /app -# Copiamo SOLO package.json (ignoriamo package-lock.json per evitare conflitti di OS) +# Copia solo il file delle dipendenze COPY package.json ./ -# Installazione pulita ignorando il lockfile locale -RUN npm install --no-package-lock +# Pulisce la cache di npm e installa le dipendenze +# --legacy-peer-deps risolve conflitti di versioni comuni +# --no-audit e --no-fund velocizzano il processo +RUN npm cache clean --force && \ + npm install --no-package-lock --legacy-peer-deps --no-audit --no-fund -# Copiamo il resto dei file (grazie al .dockerignore, la cartella node_modules locale NON verrĂ  copiata) +# Copia il codice sorgente COPY . . -# Build +# Esegue la build di Vite RUN npm run build -# Production Stage +# Stage di produzione con Nginx FROM nginx:alpine COPY nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build /app/dist /usr/share/nginx/html