30 lines
		
	
	
		
			943 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			943 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # 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;"] |