diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7897ee8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +# 1단계: 빌드 (Node.js 버전은 로그에 맞춰 20 이상 권장) +FROM node:20-alpine AS build +WORKDIR /app +COPY package*.json ./ +RUN npm install +COPY . . +# Vite 빌드 실행 (vite.config.ts의 base 설정이 적용됨) +RUN npm run build + +# 2단계: 실행 (Nginx) +FROM nginx:stable-alpine +# 빌드된 dist 폴더를 Nginx의 웹 루트로 복사 +COPY --from=build /app/dist /usr/share/nginx/html + +# SPA 라우팅을 위한 Nginx 설정 (하위 경로 인식용) +RUN echo 'server { \ + listen 80; \ + location / { \ + root /usr/share/nginx/html; \ + index index.html; \ + try_files $uri $uri/ /index.html; \ + } \ +}' > /etc/nginx/conf.d/default.conf + +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file