From 6c59d37a1961b94bf83c1d92a17e302455150cf6 Mon Sep 17 00:00:00 2001 From: ingi Date: Sat, 16 May 2026 10:01:53 +0000 Subject: [PATCH] add d --- server/Dockerfile | 37 +++++++++++++++++++++++++++++++++++++ server/docker-compose.yml | 11 +++++++++++ 2 files changed, 48 insertions(+) create mode 100644 server/Dockerfile create mode 100644 server/docker-compose.yml diff --git a/server/Dockerfile b/server/Dockerfile new file mode 100644 index 0000000..81d2730 --- /dev/null +++ b/server/Dockerfile @@ -0,0 +1,37 @@ +# ========================================== +# 1단계: 빌드 스테이지 (노트북 서버 안에서 dist 폴더 생성) +# ========================================== +FROM node:22-alpine AS builder +WORKDIR /app + +# 패키지 파일 복사 +COPY package*.json ./ + +# 빌드 도구(컴파일러 등)가 필요하므로 전체 패키지 설치 +RUN npm install + +# 전체 소스코드 복사 +COPY . . + +# 노트북 서버 안에서 빌드 명령어를 실행하여 dist 폴더를 직접 생성 ⭐ +RUN npm run build + +# ========================================== +# 2단계: 실행 스테이지 (실제 서비스 구동, 용량 최소화) +# ========================================== +FROM node:22-alpine AS runner +WORKDIR /app + +ENV NODE_ENV=production + +# 1단계(builder)에서 생성된 따끈따끈한 dist 폴더와 패키지 파일만 복사 +COPY --from=builder /app/package*.json ./ +COPY --from=builder /app/dist ./dist + +# 실행에 필요한 프로덕션 패키지만 가볍게 설치 (개발용 라이브러리 제외) [1] +RUN npm install --production + +EXPOSE 8787 + +CMD ["npm", "start"] + diff --git a/server/docker-compose.yml b/server/docker-compose.yml new file mode 100644 index 0000000..be6e0c5 --- /dev/null +++ b/server/docker-compose.yml @@ -0,0 +1,11 @@ +version: '3.8' +services: + node-app: + build: . + container_name: iykyk_msn-service + restart: always + ports: + - "8787:8787" + environment: + - NODE_ENV=production +