# Etapa 1: Build
FROM node:22.16.0 AS build

WORKDIR /app

# Accept build args
ARG PUBLIC_API_URL

# Make them available during build
ENV PUBLIC_API_URL=$PUBLIC_API_URL

COPY package*.json ./

RUN npm install

COPY . .

RUN npm run build

# Etapa 2: Producción con Nginx
# Fijado a Alpine 3.23: las imágenes sobre Alpine 3.24+ usan una syscall que el
# perfil seccomp de Docker en este servidor (kernel 3.10) rechaza, y nginx no
# arranca -> pwrite() "/run/nginx.pid" failed (1: Operation not permitted)
FROM nginx:1.31.2-alpine

# Remueve la conf por defecto de nginx (buena práctica)
RUN rm /etc/nginx/conf.d/default.conf

# Copia tu archivo de configuración personalizado
COPY nginx.conf /etc/nginx/conf.d

# Copia la app generada
COPY --from=build /app/dist /usr/share/nginx/html

EXPOSE 80

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