diff --git a/Elecciones-Web/frontend/Dockerfile b/Elecciones-Web/frontend/Dockerfile new file mode 100644 index 0000000..a307ad8 --- /dev/null +++ b/Elecciones-Web/frontend/Dockerfile @@ -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. \ No newline at end of file