# 빌드 스테이지 - 프론트엔드 빌드
FROM node:20-alpine AS frontend-builder
WORKDIR /frontend
COPY frontend/package*.json ./
RUN npm install
COPY frontend/ ./
RUN npm run build

# 프로덕션 스테이지 - 백엔드 + 프론트 빌드 결과물
FROM node:20-alpine
WORKDIR /app

# CA 인증서 및 필수 패키지 설치 (Docker CLI 포함)
RUN apk add --no-cache ca-certificates docker-cli docker-cli-compose

# undici 연결 타임아웃 늘리기
ENV NODE_OPTIONS="--dns-result-order=ipv4first"

# 백엔드 의존성 설치
COPY backend/package*.json ./
RUN npm install --production

# 백엔드 파일 복사
COPY backend/ ./

# 프론트엔드 빌드 결과물 복사
COPY --from=frontend-builder /frontend/dist ./dist

EXPOSE 80
CMD ["node", "server.js"]
