From a476da7cd6f31ce7a54b3a9f2a8e3050d9e671f5 Mon Sep 17 00:00:00 2001 From: Reeha Batool Date: Sat, 16 May 2026 16:41:28 +0500 Subject: [PATCH] Added Docker files for frontend --- node-express-server/.dockerignore | 4 ++++ node-express-server/Dockerfile | 13 +++++++++++++ react-client/Dockerfile | 15 +++++++++++++++ react-client/nginx.conf | 8 ++++++++ 4 files changed, 40 insertions(+) create mode 100644 node-express-server/.dockerignore create mode 100644 node-express-server/Dockerfile create mode 100644 react-client/Dockerfile create mode 100644 react-client/nginx.conf diff --git a/node-express-server/.dockerignore b/node-express-server/.dockerignore new file mode 100644 index 0000000..21c6f1a --- /dev/null +++ b/node-express-server/.dockerignore @@ -0,0 +1,4 @@ +node_modules +npm-debug.log +.git +.env \ No newline at end of file diff --git a/node-express-server/Dockerfile b/node-express-server/Dockerfile new file mode 100644 index 0000000..f394abb --- /dev/null +++ b/node-express-server/Dockerfile @@ -0,0 +1,13 @@ +# Multi-stage build for a smaller, secure image +FROM node:18-alpine AS builder +WORKDIR /app +COPY package*.json ./ +RUN npm ci --only-production +COPY . . + +FROM node:18-alpine +WORKDIR /app +COPY --from-builder /app . +EXPOSE 8080 +# Note: Based on your screenshot, the main file is server.js +CMD ["node", "server.js"] \ No newline at end of file diff --git a/react-client/Dockerfile b/react-client/Dockerfile new file mode 100644 index 0000000..1e5d79c --- /dev/null +++ b/react-client/Dockerfile @@ -0,0 +1,15 @@ +# Stage 1: Build the React app +FROM node:18-alpine AS build +WORKDIR /app +COPY package*.json ./ +RUN npm install +COPY . . +RUN npm run build + +# Stage 2: Serve using Nginx +FROM nginx:alpine +# In React apps, the build output usually goes to a folder named 'build' +COPY --from-build /app/build /usr/share/nginx/html +COPY nginx.conf /etc/nginx/conf.d/default.conf +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/react-client/nginx.conf b/react-client/nginx.conf new file mode 100644 index 0000000..333bc49 --- /dev/null +++ b/react-client/nginx.conf @@ -0,0 +1,8 @@ +server { + listen 80; + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri $uri/ /index.html; + } +} \ No newline at end of file