# Etapa 1: Construcción de la aplicación React # Usamos una imagen de Node.js (versión Alpine por ser ligera) FROM node:20-alpine AS build WORKDIR /app # Copiamos package.json y package-lock.json para instalar dependencias COPY package*.json ./ RUN npm install # Copiamos el resto de los archivos del frontend COPY . . # Construimos la aplicación para producción. Los archivos resultantes irán a /app/dist RUN npm run build # Etapa 2: Servidor Nginx # Usamos la imagen oficial de Nginx (versión Alpine por ser ligera) FROM nginx:stable-alpine WORKDIR /usr/share/nginx/html # Eliminamos el contenido por defecto de Nginx RUN rm -rf ./* # Copiamos los archivos estáticos construidos en la etapa anterior COPY --from=build /app/dist . # Exponemos el puerto 80, que es el puerto por defecto de Nginx EXPOSE 80 # El comando por defecto de la imagen de Nginx es suficiente para iniciar el servidor # CMD ["nginx", "-g", "daemon off;"]