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"]