# 프론트엔드 도커 이미지 (멀티스테이지 빌드)
# 학습 포인트: React 앱은 빌드하면 결국 정적 파일(html/js/css)이 돼요.
# 1단계에서 Node로 빌드하고, 2단계에선 가벼운 웹서버(여기선 Caddy가 대신 서빙하므로
# 파일만 담는 컨테이너)로 결과물을 전달합니다.

FROM node:22-alpine AS build
WORKDIR /build
COPY package.json package-lock.json* ./
RUN npm install --no-audit --no-fund
COPY . .
RUN npm run build
# public/docs 의 학습 문서 17개도 dist/docs 로 함께 복사됩니다 (Vite가 public/을 그대로 포함)

# 결과물만 담는 단계 — deploy/docker-compose.prod.yml 이 이 컨테이너에서 dist를 꺼내 씁니다
FROM alpine:3.21
COPY --from=build /build/dist /dist
CMD ["sh", "-c", "cp -r /dist/* /out/ && echo 'frontend dist copied' && sleep 1"]
