# --- Etapa 1: Construcción (Builder) ---
FROM node:22-alpine AS builder

WORKDIR /app

# Copiamos los archivos de dependencias
COPY package.json package-lock.json ./

# Instalamos dependencias usando npm ci para instalaciones más precisas y limpias
RUN npm ci

# Copiamos el resto del código fuente
COPY . .

# ⚠️ Importante: Astro inyecta las variables PUBLIC_* en tiempo de compilación.
# Definimos argumentos para recibirlas cuando ejecutemos 'docker build'
ARG PUBLIC_SUPABASE_URL
ARG PUBLIC_SUPABASE_ANON_KEY
ENV PUBLIC_SUPABASE_URL=https://lhlzobfwpotobqgxpqps.supabase.co
ENV PUBLIC_SUPABASE_ANON_KEY=sb_publishable_PZGIeCmJ5eHW0FR9c6sdUA_NF5AtoQT

# Construimos el proyecto (genera los archivos estáticos en la carpeta 'dist')
RUN npm run build

# --- Etapa 2: Servidor (Runtime Nginx) ---
FROM nginx:alpine AS runtime

# Copiamos los archivos estáticos desde la etapa de construcción a Nginx
COPY --from=builder /app/dist /usr/share/nginx/html

# Exponemos el puerto 80
EXPOSE 80

# Iniciamos Nginx
CMD ["nginx", "-g", "daemon off;"]