🐛 fix(frontend): update Dockerfile to use node:20-alpine as base image for frontend build
✨ feat(frontend): add support for BACKEND_URL environment variable in nginx.conf to configure backend URL 📝 chore(frontend): add start-nginx.sh script to replace placeholder in nginx.conf with actual BACKEND_URL and start nginx
This commit is contained in:
parent
c2ec95fbb7
commit
40321f4be7
3 changed files with 49 additions and 18 deletions
|
|
@ -1,10 +1,16 @@
|
||||||
FROM node:14-alpine as frontend_build
|
FROM node:20-alpine as frontend_build
|
||||||
ARG BACKEND
|
ARG BACKEND_URL
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY . /app
|
COPY ./src /app/src
|
||||||
|
COPY ./package.json ./package-lock.json ./tsconfig.json ./vite.config.ts ./index.html ./tailwind.config.js ./postcss.config.js ./prettier.config.js /app/
|
||||||
|
|
||||||
RUN npm install
|
RUN npm install
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
FROM nginx
|
FROM nginx
|
||||||
COPY --from=frontend_build /app/build/ /usr/share/nginx/html
|
COPY --from=frontend_build /app/build/ /usr/share/nginx/html
|
||||||
COPY /nginx.conf /etc/nginx/conf.d/default.conf
|
COPY /nginx.conf /etc/nginx/conf.d/default.conf
|
||||||
|
COPY start-nginx.sh /start-nginx.sh
|
||||||
|
RUN chmod +x /start-nginx.sh
|
||||||
|
ENV BACKEND_URL=$BACKEND_URL
|
||||||
|
CMD ["/start-nginx.sh"]
|
||||||
|
|
@ -1,18 +1,35 @@
|
||||||
server {
|
server {
|
||||||
gzip on;
|
gzip on;
|
||||||
gzip_comp_level 2;
|
gzip_comp_level 2;
|
||||||
gzip_min_length 1000;
|
gzip_min_length 1000;
|
||||||
gzip_types text/xml text/css;
|
gzip_types text/xml text/css;
|
||||||
gzip_http_version 1.1;
|
gzip_http_version 1.1;
|
||||||
gzip_vary on;
|
gzip_vary on;
|
||||||
gzip_disable "MSIE [4-6] \.";
|
gzip_disable "MSIE [4-6] \.";
|
||||||
|
|
||||||
listen 80;
|
listen 80;
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
root /usr/share/nginx/html;
|
root /usr/share/nginx/html;
|
||||||
index index.html index.htm;
|
index index.html index.htm;
|
||||||
try_files $uri $uri/ /index.html =404;
|
try_files $uri $uri/ /index.html =404;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
location ~ ^/api/v1/ { # Matching the /api/v1/ route
|
||||||
|
proxy_pass __BACKEND_URL__; # URL of your backend service
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection 'upgrade';
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_cache_bypass $http_upgrade;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /health { # Matching the /health route
|
||||||
|
proxy_pass __BACKEND_URL__; # URL of your backend service
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection 'upgrade';
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_cache_bypass $http_upgrade;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
8
src/frontend/start-nginx.sh
Normal file
8
src/frontend/start-nginx.sh
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Replace the placeholder with the actual value
|
||||||
|
sed -i "s|__BACKEND_URL__|$BACKEND_URL|g" /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
|
|
||||||
|
# Start nginx
|
||||||
|
exec nginx -g 'daemon off;'
|
||||||
Loading…
Add table
Add a link
Reference in a new issue