# --- Etapa 1: Build --- # Usamos una imagen de Node.js para construir los archivos estáticos de React. FROM node:20-alpine AS build WORKDIR /app # Copiamos los archivos de dependencias desde la ruta correcta y las instalamos. COPY Frontend/package.json Frontend/package-lock.json ./ RUN npm install # Copiamos el resto del código del frontend. COPY Frontend/. . # Ejecutamos el script de build de Vite, que genera la carpeta 'dist'. RUN npm run build # --- Etapa 2: Serve --- # Usamos una imagen de Nginx súper ligera para servir los archivos estáticos. FROM nginx:stable-alpine # Copiamos nuestro archivo de configuración personalizado a la carpeta de configuración de Nginx. # Esto sobreescribirá la configuración por defecto. COPY Frontend/nginx.conf /etc/nginx/conf.d/default.conf WORKDIR /usr/share/nginx/html # Eliminamos el index.html por defecto de Nginx. RUN rm -f index.html # Copiamos los archivos construidos desde la etapa anterior a la carpeta que Nginx sirve. COPY --from=build /app/dist . # Nginx por defecto escucha en el puerto 80, así que lo exponemos. EXPOSE 80 # Comando para iniciar Nginx. Esto asegura que se mantenga corriendo. CMD ["nginx", "-g", "daemon off;"]