From f5ff2cd89d562a04dd5058af1a46d7da9b4228a0 Mon Sep 17 00:00:00 2001 From: Hyoseong Jo Date: Tue, 9 Dec 2025 23:36:13 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B0=9C=EB=B0=9C=EC=84=9C=EB=B2=84=EB=A5=BC?= =?UTF-8?q?=20=EC=9C=84=ED=95=9C=20=EC=84=A4=EC=A0=95=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/Dockerfile | 45 ++++++++------------------------------------- 1 file changed, 8 insertions(+), 37 deletions(-) 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"]