Dockerfile frontend
This commit is contained in:
		
							
								
								
									
										34
									
								
								Elecciones-Web/frontend/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								Elecciones-Web/frontend/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | |||||||
|  | # --- Etapa 1: Build (Construcción) --- | ||||||
|  | # Usamos una imagen de Node.js para instalar dependencias y construir la aplicación de React. | ||||||
|  | FROM node:20-alpine AS build | ||||||
|  |  | ||||||
|  | # Establecemos el directorio de trabajo dentro del contenedor. | ||||||
|  | WORKDIR /app | ||||||
|  |  | ||||||
|  | # Copiamos los archivos de manifiesto del proyecto. | ||||||
|  | COPY package.json ./ | ||||||
|  | COPY package-lock.json ./ | ||||||
|  |  | ||||||
|  | # Instalamos las dependencias. | ||||||
|  | RUN npm install | ||||||
|  |  | ||||||
|  | # Copiamos el resto del código fuente de la aplicación. | ||||||
|  | COPY . . | ||||||
|  |  | ||||||
|  | # Ejecutamos el script de construcción de Vite para generar los archivos estáticos. | ||||||
|  | RUN npm run build | ||||||
|  |  | ||||||
|  | # --- Etapa 2: Serve (Servir) --- | ||||||
|  | # Usamos una imagen de Nginx, que es un servidor web muy ligero y eficiente. | ||||||
|  | # Es ideal para servir archivos estáticos (HTML, CSS, JS). | ||||||
|  | FROM nginx:1.25-alpine | ||||||
|  |  | ||||||
|  | # Copiamos los archivos de producción construidos en la etapa anterior | ||||||
|  | # al directorio por defecto donde Nginx sirve los archivos. | ||||||
|  | COPY --from=build /app/dist /usr/share/nginx/html | ||||||
|  |  | ||||||
|  | # Exponemos el puerto 80 (el puerto por defecto de Nginx). | ||||||
|  | EXPOSE 80 | ||||||
|  |  | ||||||
|  | # El comando por defecto de la imagen de Nginx ya es iniciar el servidor, | ||||||
|  | # así que no necesitamos un CMD o ENTRYPOINT. | ||||||
		Reference in New Issue
	
	Block a user