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; + } +}