dockerfile added

This commit is contained in:
2026-08-27 11:34:11 +05:30
parent 7248e11e65
commit 60efac7a7e
3 changed files with 64 additions and 2 deletions

3
.gitignore vendored
View File

@@ -1,7 +1,6 @@
node_modules
dist
.env
.env.local
*.local
.DS_Store
.vscode

38
Dockerfile Normal file
View File

@@ -0,0 +1,38 @@
# Stage 1: Build the React application
FROM node:22-alpine AS builder
WORKDIR /app
# Copy package.json and lockfile
COPY package*.json ./
# Install dependencies
RUN npm install
# Copy the rest of your application code
COPY . .
# Build the Vite application (this creates the /app/dist folder inside the container)
RUN npm run build
# Stage 2: Serve the application with Nginx
FROM nginx:alpine
# Set the default Hasura admin secret (can be overridden at runtime)
ENV HASURA_ADMIN_SECRET="nearle-admin-secret"
# Move to Nginx's public folder
WORKDIR /usr/share/nginx/html
# CRUCIAL: Remove Nginx's default "Welcome" page files completely
RUN rm -rf ./*
# Copy the compiled static assets FROM THE BUILDER STAGE
COPY --from=builder /app/dist/ .
# Copy your custom Nginx configuration into the conf.d directory so it gets included properly
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

25
nginx.conf Normal file
View File

@@ -0,0 +1,25 @@
server {
listen 80;
server_name localhost;
# Serve the React App
location / {
root /usr/share/nginx/html;
index index.html index.htm;
# Force Nginx to pass routing back to React Router
try_files $uri $uri/ /index.html;
}
# Proxy /hasura to the live API, exactly like Vite dev server does
location /hasura/ {
proxy_pass https://api.workolik.com/api/rest/;
proxy_set_header x-hasura-admin-secret "nearle-admin-secret";
proxy_ssl_server_name on;
# Pass standard proxy headers
proxy_set_header Host api.workolik.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}