-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.prod
56 lines (40 loc) · 1.24 KB
/
Dockerfile.prod
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 빌드 단계
FROM node:18-alpine AS client-build
# 작업 디렉토리 설정
WORKDIR /app
# package.json과 package-lock.json 복사
COPY package*.json ./
# 빌드 시점 환경변수 정의
ARG NEXT_PUBLIC_API_URL
# Next.js 종속성 설치
RUN npm install
# 애플리케이션 코드 복사
COPY . .
# 환경 변수 파일 복사
# COPY ./config ./config
# 빌드 시 사용할 환경 변수 파일 복사
# 기본적으로 development 환경 변수 파일을 사용
# ARG ENV_FILE=.env.production
# COPY config/$ENV_FILE .env
# 환경변수를 설정하여 빌드 시점에 적용
ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL
# Next.js 애플리케이션 빌드
RUN npm run build:prod
# 실행 단계
FROM node:18-alpine
# 작업 디렉토리 설정
WORKDIR /app
# production 의존성만 설치
COPY package*.json ./
RUN npm install --production
# 빌드된 파일만 복사
COPY --from=client-build /app/.next ./.next
# COPY --from=client-build /app/public ./public
COPY --from=client-build /app/next.config.mjs ./next.config.mjs
COPY --from=client-build /app/package.json ./package.json
# 환경 변수 파일 복사
# COPY --from=client-build /app/.env .env
# 포트 설정
EXPOSE 3000
# 애플리케이션 시작
CMD ["npm", "run", "start:prod"]