# --- Etapa 1: build del bundle Angular ---
# Node 20 LTS: soportado oficialmente por Angular 19 (el host de desarrollo usa
# Node 24, no soportado; en la imagen fijamos una versión soportada a propósito).
FROM node:20-alpine AS build
WORKDIR /app

# Instalar dependencias con caché de capas (primero los manifiestos).
# Se usa `npm install` en vez de `npm ci`: Angular arrastra dependencias opcionales
# por plataforma (@esbuild/*, @rollup/*) y el lockfile, generado en macOS, no fija
# las variantes de Linux que necesita la imagen. `npm ci` (estricto) fallaría; este
# `npm install` respeta el lock y resuelve además los binarios de la plataforma.
COPY package.json package-lock.json ./
RUN npm install --no-audit --no-fund

# Código y build de producción.
COPY . .
RUN npm run build

# --- Etapa 2: servir estáticos con Nginx ---
FROM nginx:1.27-alpine AS runtime
ENV TZ=Europe/Madrid

# Config propia: SPA fallback + proxy /api hacia el backend.
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build /app/dist/frontend/browser /usr/share/nginx/html

EXPOSE 80
