| 
									
										
										
										
											2025-06-14 22:11:02 -03:00
										 |  |  | # --- 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
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-17 13:35:40 -03:00
										 |  |  | # Copiamos los archivos de dependencias desde la ruta correcta y las instalamos.
 | 
					
						
							|  |  |  | COPY Frontend/package.json Frontend/package-lock.json ./
 | 
					
						
							| 
									
										
										
										
											2025-06-14 22:11:02 -03:00
										 |  |  | RUN npm install
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Copiamos el resto del código del frontend.
 | 
					
						
							| 
									
										
										
										
											2025-06-17 13:35:40 -03:00
										 |  |  | COPY Frontend/. .
 | 
					
						
							| 
									
										
										
										
											2025-06-14 22:11:02 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | # 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
 | 
					
						
							| 
									
										
										
										
											2025-06-17 15:08:38 -03:00
										 |  |  | # 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
 | 
					
						
							| 
									
										
										
										
											2025-06-14 22:11:02 -03:00
										 |  |  | 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;"]
 |