# ── 1단계: 빌드 ───────────────────────────────────────────────────────────────
FROM node:20-alpine AS builder
WORKDIR /app

# 의존성 레이어 캐시 (package*.json 변경 시만 재설치)
COPY package*.json ./
RUN npm ci

# 소스 복사 후 프로덕션 빌드
# Docker 환경에서 /api 는 nginx 가 backend:8080 으로 프록시하므로 그대로 사용
COPY . .
ARG VITE_API_BASE_URL=/api
ENV VITE_API_BASE_URL=${VITE_API_BASE_URL}
RUN npm run build

# ── 2단계: 서비스 ─────────────────────────────────────────────────────────────
FROM nginx:1.27-alpine AS production

# 빌드 결과물 복사
COPY --from=builder /app/dist /usr/share/nginx/html

# SPA 라우팅 + 정적 파일 캐시 설정
COPY nginx.conf /etc/nginx/conf.d/default.conf

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