From 0c83798b3f21de164551c3a43c522681de05e1ad Mon Sep 17 00:00:00 2001 From: pricelees Date: Wed, 30 Jul 2025 15:45:35 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20frontend=20=EC=9D=B4=EB=AF=B8=EC=A7=80?= =?UTF-8?q?=20=EC=83=9D=EC=84=B1=EC=9D=84=20=EC=9C=84=ED=95=9C=20Dockerfil?= =?UTF-8?q?e=20=EB=B0=8F=20nginx=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 --- frontend/.dockerignore | 6 ++++++ frontend/Dockerfile | 18 ++++++++++++++++++ frontend/nginx.conf | 15 +++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 frontend/.dockerignore create mode 100644 frontend/Dockerfile create mode 100644 frontend/nginx.conf diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 00000000..3dd9fe5b --- /dev/null +++ b/frontend/.dockerignore @@ -0,0 +1,6 @@ +node_modules +.git +.DS_Store +npm-debug.log +dist +build \ No newline at end of file diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 00000000..cfc4d6d9 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,18 @@ +# Stage 1: Build the React app +FROM node:24 AS builder +WORKDIR /app +COPY package.json ./ +COPY package-lock.json ./ + +RUN npm install --frozen-lockfile + +COPY . . + +RUN npm run build + +# Stage 2: Serve with Nginx +FROM nginx:latest +COPY --from=builder /app/dist /usr/share/nginx/html +COPY nginx.conf /etc/nginx/conf.d/default.conf +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] diff --git a/frontend/nginx.conf b/frontend/nginx.conf new file mode 100644 index 00000000..f304b884 --- /dev/null +++ b/frontend/nginx.conf @@ -0,0 +1,15 @@ +server { + listen 80; + server_name localhost; + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri $uri/ /index.html; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } +}