# 1단계: 빌드 (Node.js) FROM node:20-slim AS build WORKDIR /app # 빌드 도구 설치 (sqlite3 등 네이티브 모듈 빌드용) RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/* COPY package*.json ./ RUN rm -f package-lock.json && npm install COPY . . ARG VITE_GEMINI_API_KEY ENV VITE_GEMINI_API_KEY=$VITE_GEMINI_API_KEY RUN npm run build # 2단계: 실행 (Node.js - Debian Slim) FROM node:20-slim WORKDIR /app # 런타임 의존성 설치 (필요시) # RUN apt-get update && apt-get install -y ... && rm -rf /var/lib/apt/lists/* # 프로덕션 의존성만 설치 COPY package*.json ./ RUN npm install --omit=dev # 빌드 결과물 복사 COPY --from=build /app/dist ./dist COPY server.js . COPY favicon.png . # 환경변수 포트 노출 (Dokploy 등에서 PORT 주입 시 사용됨) ENV PORT=80 EXPOSE 80 # 서버 실행 CMD ["node", "server.js"]