# ----- ETAPA 1: Compilación (Build) -----
FROM node:20-alpine AS build

WORKDIR /app

# Copiamos solo los archivos de dependencias para aprovechar la caché de Docker
COPY package*.json ./

# Instalamos dependencias
RUN npm install

# Copiamos el resto de los archivos del proyecto
COPY . .

# Compilamos el proyecto (esto genera la carpeta /app/dist)
RUN npm run build


# ----- ETAPA 2: Servidor Web (Nginx) -----
FROM nginx:alpine

# Copiamos los archivos compilados de la etapa anterior a la carpeta pública de Nginx
COPY --from=build /app/dist /usr/share/nginx/html

# Exponemos el puerto 80 por defecto
EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]
