# Multi-stage: Node builds static assets → nginx alpine serves SPA (~minimal footprint).
# Build from repo root: docker build -f docker/admin/Dockerfile .
FROM node:20-bookworm-slim AS builder
WORKDIR /app

COPY admin-web/package.json admin-web/package-lock.json ./
RUN npm ci

COPY admin-web/ ./

ARG VITE_ADMIN_API_BASE_URL=http://localhost:8080
ENV VITE_ADMIN_API_BASE_URL=${VITE_ADMIN_API_BASE_URL}

RUN npm run build

FROM nginx:1.27-alpine-slim

COPY docker/admin/nginx-default.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /app/dist /usr/share/nginx/html

EXPOSE 80
