FROM node:24-alpine

WORKDIR /app

# 필요한 패키지 설치
RUN apk add --no-cache curl

# 로그 버퍼링 완전 비활성화
ENV NODE_ENV=production
ENV NODE_OPTIONS="--enable-source-maps --unhandled-rejections=strict"
ENV NODE_NO_WARNINGS=0

# stdout 버퍼링 비활성화
ENV PYTHONUNBUFFERED=1
ENV NODE_DEBUG=*

# package.json 복사
COPY package*.json ./

# 의존성 설치 (devDependencies 포함 - nest CLI 필요)
RUN npm install --include=dev

# 소스 코드 복사 (.env 포함)
COPY . .

# NestJS 빌드 (npx로 nest CLI 실행)
RUN npx nest build

# devDependencies 제거 (이미지 크기 줄이기)
RUN npm prune --production

# 포트 노출
EXPOSE 4000

# 애플리케이션 실행 (stdbuf로 버퍼링 우회)
CMD ["node", "--enable-source-maps", "--unhandled-rejections=strict", "dist/main.js"]
