# --- Etapa 1: Build --- # Usamos una imagen ligera de Node.js para instalar dependencias y compilar el frontend FROM node:20-alpine AS build WORKDIR /app # Copiamos package.json y package-lock.json para cachear las dependencias COPY package*.json ./ RUN npm install # Copiamos el resto del código del frontend COPY . . # Ejecutamos el script de build de Vite RUN npm run build # --- Etapa 2: Producción --- # Usamos la imagen oficial de Nginx, que es muy pequeña y eficiente FROM nginx:1.25-alpine # Copiamos los archivos estáticos generados en la etapa de build # a la carpeta que Nginx sirve por defecto. COPY --from=build /app/dist /usr/share/nginx/html # Nginx ya está configurado para escuchar en el puerto 80 por defecto. # Simplemente lo exponemos. EXPOSE 80 # El comando por defecto de la imagen de Nginx ya inicia el servidor. CMD ["nginx", "-g", "daemon off;"]