Spaces:
Running
Running
| # ========================================== | |
| # Stage 1: Next.js 정적 리소스 빌드 | |
| # ========================================== | |
| FROM node:20-alpine AS frontend-builder | |
| WORKDIR /app/frontend | |
| # 의존성 복사 및 설치 | |
| COPY frontend/package*.json ./ | |
| RUN npm ci | |
| # 소스코드 복사 및 정적 빌드 실행 (out/ 폴더 생성) | |
| COPY frontend/ ./ | |
| RUN npm run build | |
| # ========================================== | |
| # Stage 2: FastAPI 실행 및 통합 서빙 | |
| # ========================================== | |
| FROM python:3.11-slim | |
| WORKDIR /app | |
| # 시스템 의존성 설치 (필요시) | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| build-essential \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 파이썬 의존성 복사 및 설치 | |
| COPY backend/requirements.txt ./backend/ | |
| RUN pip install --no-cache-dir -r backend/requirements.txt | |
| # 소스코드 복사 | |
| COPY backend/ ./backend/ | |
| # 빌드된 프론트엔드 리소스 가져오기 | |
| COPY --from=frontend-builder /app/frontend/out ./frontend/out | |
| # Hugging Face Spaces 기본 포트는 7860입니다. | |
| EXPOSE 7860 | |
| # FastAPI 및 Uvicorn 실행 | |
| CMD ["uvicorn", "backend.app.main:app", "--host", "0.0.0.0", "--port", "7860"] | |