diff --git a/backend/Dockerfile b/backend/Dockerfile index b677891..16fe12f 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,53 +1,24 @@ -# ============================================== -# Build Stage - NestJS 빌드 -# ============================================== -FROM node:24-alpine AS builder - -WORKDIR /app - -# package.json과 package-lock.json 복사 -COPY package*.json ./ - -# 의존성 설치 (devDependencies 포함) -RUN npm ci - -# 소스 코드 복사 -COPY . . - -# NestJS 프로젝트 빌드 -RUN npm run build - -# ============================================== -# Production Stage - 실행 이미지 생성 -# ============================================== FROM node:24-alpine WORKDIR /app -# curl 설치 (헬스체크용) +# 필요한 패키지 설치 RUN apk add --no-cache curl # package.json 복사 COPY package*.json ./ -# 프로덕션 의존성만 설치 -RUN npm ci --only=production +# 의존성 설치 +RUN npm install -# 빌드된 파일 복사 -COPY --from=builder /app/dist ./dist +# 소스 코드 복사 +COPY . . -# 환경 변수 파일 복사 -COPY ../.env.development ./.env - -# 업로드 디렉토리 생성 -RUN mkdir -p ./uploads ./logs +# NestJS 빌드 +RUN npm run build # 포트 노출 EXPOSE 4000 -# 헬스체크 -HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ - CMD curl -f http://localhost:4000/health || exit 1 - # 애플리케이션 실행 -CMD ["node", "dist/main"] +CMD ["npm", "run", "start:prod"]