Skip to content

Commit bbfa98b

Browse files
authored
chore : update Dockerfile
1 parent bd4592a commit bbfa98b

File tree

1 file changed

+77
-40
lines changed

1 file changed

+77
-40
lines changed

Dockerfile

Lines changed: 77 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,99 @@
1+
# FROM node:22-alpine AS base
2+
3+
# # 빌드 시 환경 변수 설정
4+
# ARG VITE_SUPABASE_SERVICE_KEY
5+
# ARG VITE_KAKAOMAP_KEY
6+
# ARG VITE_VISITJEJU_KEY
7+
# ARG VITE_VISIT_JEJU_BASE_URL
8+
# ARG VITE_API_BASE_URL
9+
# ARG VITE_SUPABASE_BASE_URL
10+
11+
# # 런타임에서 사용 가능하도록 ENV 설정
12+
# ENV VITE_SUPABASE_SERVICE_KEY=$VITE_SUPABASE_SERVICE_KEY
13+
# ENV VITE_KAKAOMAP_KEY=$VITE_KAKAOMAP_KEY
14+
# ENV VITE_VISITJEJU_KEY=$VITE_VISITJEJU_KEY
15+
# ENV VITE_VISIT_JEJU_BASE_URL=$VITE_VISIT_JEJU_BASE_URL
16+
# ENV VITE_API_BASE_URL=$VITE_API_BASE_URL
17+
# ENV VITE_SUPABASE_BASE_URL=$VITE_SUPABASE_BASE_URL
18+
19+
# # 종속성 설치를 위한 이미지 (의존성 캐싱 가능)
20+
# FROM base AS deps
21+
# RUN apk add --no-cache libc6-compat
22+
# WORKDIR /app
23+
24+
# # package.json & yarn.lock 복사 후 종속성 설치
25+
# COPY package.json yarn.lock ./
26+
# RUN yarn install --frozen-lockfile
27+
28+
# # 빌드 전용 이미지
29+
# FROM base AS builder
30+
# WORKDIR /app
31+
32+
# # deps 단계에서 설치된 node_modules 사용
33+
# COPY --from=deps /app/node_modules ./node_modules
34+
# COPY . .
35+
36+
# # Vite 빌드 실행
37+
# RUN yarn build
38+
39+
# # 최종 프로덕션 이미지 (가벼운 실행 환경)
40+
# FROM base AS runner
41+
# WORKDIR /app
42+
43+
# # 프로덕션 모드 설정
44+
# ENV NODE_ENV=production
45+
46+
# # 실행할 빌드된 파일만 복사
47+
# COPY --from=builder /app/dist ./dist
48+
# COPY --from=builder /app/node_modules ./node_modules
49+
# COPY --from=builder /app/package.json ./
50+
51+
# # 사용자 생성 및 권한 설정 (보안 강화)
52+
# RUN addgroup --system --gid 1001 nodejs
53+
# RUN adduser --system --uid 1001 react
54+
# USER react
55+
56+
# # 포트 설정
57+
# EXPOSE 3000
58+
# ENV PORT=3000
59+
# ENV HOSTNAME="0.0.0.0"
60+
61+
# # Vite 프론트엔드 서버 실행
62+
# CMD ["yarn", "preview", "--host"]
63+
164
FROM node:22-alpine AS base
265

3-
# 빌드 시 환경 변수 설정
66+
# Define arguments for environment variables
467
ARG VITE_SUPABASE_SERVICE_KEY
568
ARG VITE_KAKAOMAP_KEY
669
ARG VITE_VISITJEJU_KEY
770
ARG VITE_VISIT_JEJU_BASE_URL
871
ARG VITE_API_BASE_URL
972
ARG VITE_SUPABASE_BASE_URL
1073

11-
# 런타임에서 사용 가능하도록 ENV 설정
74+
WORKDIR /app
75+
COPY package.json yarn.lock ./
76+
RUN yarn install --frozen-lockfile
77+
78+
# Copy source code and set environment variables
79+
COPY . .
1280
ENV VITE_SUPABASE_SERVICE_KEY=$VITE_SUPABASE_SERVICE_KEY
1381
ENV VITE_KAKAOMAP_KEY=$VITE_KAKAOMAP_KEY
1482
ENV VITE_VISITJEJU_KEY=$VITE_VISITJEJU_KEY
1583
ENV VITE_VISIT_JEJU_BASE_URL=$VITE_VISIT_JEJU_BASE_URL
1684
ENV VITE_API_BASE_URL=$VITE_API_BASE_URL
1785
ENV VITE_SUPABASE_BASE_URL=$VITE_SUPABASE_BASE_URL
86+
ENV NODE_ENV=production
1887

19-
# 종속성 설치를 위한 이미지 (의존성 캐싱 가능)
20-
FROM base AS deps
21-
RUN apk add --no-cache libc6-compat
22-
WORKDIR /app
23-
24-
# package.json & yarn.lock 복사 후 종속성 설치
25-
COPY package.json yarn.lock ./
26-
RUN yarn install --frozen-lockfile
27-
28-
# 빌드 전용 이미지
29-
FROM base AS builder
30-
WORKDIR /app
31-
32-
# deps 단계에서 설치된 node_modules 사용
33-
COPY --from=deps /app/node_modules ./node_modules
34-
COPY . .
35-
36-
# Vite 빌드 실행
88+
# Build the Vite application
3789
RUN yarn build
3890

39-
# 최종 프로덕션 이미지 (가벼운 실행 환경)
40-
FROM base AS runner
41-
WORKDIR /app
42-
43-
# 프로덕션 모드 설정
44-
ENV NODE_ENV=production
45-
46-
# 실행할 빌드된 파일만 복사
47-
COPY --from=builder /app/dist ./dist
48-
COPY --from=builder /app/node_modules ./node_modules
49-
COPY --from=builder /app/package.json ./
91+
# Nginx server to serve static files
92+
FROM nginx:stable-alpine AS runner
5093

51-
# 사용자 생성 및 권한 설정 (보안 강화)
52-
RUN addgroup --system --gid 1001 nodejs
53-
RUN adduser --system --uid 1001 react
54-
USER react
94+
COPY nginx/nginx.conf /etc/nginx/nginx.conf
95+
COPY --from=base /app/dist /usr/share/nginx/html/page
5596

56-
# 포트 설정
5797
EXPOSE 3000
58-
ENV PORT=3000
59-
ENV HOSTNAME="0.0.0.0"
6098

61-
# Vite 프론트엔드 서버 실행
62-
CMD ["yarn", "preview", "--host"]
99+
CMD ["nginx", "-g", "daemon off;"]

0 commit comments

Comments
 (0)