# ----- ETAPA 1: Compilación (Build) ----- FROM node:20-alpine AS build WORKDIR /app # Copiamos solo los archivos de dependencias para aprovechar la caché de Docker COPY package*.json ./ # Instalamos dependencias RUN npm install # Copiamos el resto de los archivos del proyecto COPY . . # Compilamos el proyecto (esto genera la carpeta /app/dist) RUN npm run build # ----- ETAPA 2: Servidor Web (Nginx) ----- FROM nginx:alpine # Copiamos los archivos compilados de la etapa anterior a la carpeta pública de Nginx COPY --from=build /app/dist /usr/share/nginx/html # Exponemos el puerto 80 por defecto EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]