FROM node:20-alpine

WORKDIR /app

# 의존성 (레이어 캐시)
COPY package.json package-lock.json ./
RUN npm ci

COPY . .

# 프로덕션 빌드. API URL 은 빌드 타임에 번들로 인라인되므로 여기서 주입한다(로컬 도커: backend=localhost:9300).
# npm run build 는 --mode prod → .env.prod 를 읽으므로, 최우선 파일 .env.prod.local 로 덮어쓴다.
ARG VITE_API_BASE_URL=http://localhost:9300
RUN echo "VITE_API_BASE_URL=$VITE_API_BASE_URL" > .env.prod.local && npm run build

EXPOSE 3300

# 빌드 산출물(dist)을 정적 서빙. SPA 라우팅(history fallback)은 vite preview 가 처리.
CMD ["npm", "run", "preview", "--", "--host", "0.0.0.0", "--port", "3300"]
