diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 6ada90c..b1f9711 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -23,31 +23,32 @@ RUN npm run build # Production stage FROM nginx:alpine -# Copy custom nginx config -COPY < /etc/nginx/conf.d/default.conf && \ + echo ' listen 80;' >> /etc/nginx/conf.d/default.conf && \ + echo ' server_name _;' >> /etc/nginx/conf.d/default.conf && \ + echo ' root /usr/share/nginx/html;' >> /etc/nginx/conf.d/default.conf && \ + echo ' index index.html;' >> /etc/nginx/conf.d/default.conf && \ + echo '' >> /etc/nginx/conf.d/default.conf && \ + echo ' # Enable gzip compression' >> /etc/nginx/conf.d/default.conf && \ + echo ' gzip on;' >> /etc/nginx/conf.d/default.conf && \ + echo ' gzip_vary on;' >> /etc/nginx/conf.d/default.conf && \ + echo ' gzip_min_length 1024;' >> /etc/nginx/conf.d/default.conf && \ + echo ' gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml+rss application/json;' >> /etc/nginx/conf.d/default.conf && \ + echo '' >> /etc/nginx/conf.d/default.conf && \ + echo ' location / {' >> /etc/nginx/conf.d/default.conf && \ + echo ' try_files $uri $uri/ /index.html;' >> /etc/nginx/conf.d/default.conf && \ + echo ' }' >> /etc/nginx/conf.d/default.conf && \ + echo '' >> /etc/nginx/conf.d/default.conf && \ + echo ' # Cache static assets' >> /etc/nginx/conf.d/default.conf && \ + echo ' location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {' >> /etc/nginx/conf.d/default.conf && \ + echo ' expires 1y;' >> /etc/nginx/conf.d/default.conf && \ + echo ' add_header Cache-Control "public, immutable";' >> /etc/nginx/conf.d/default.conf && \ + echo ' }' >> /etc/nginx/conf.d/default.conf && \ + echo '}' >> /etc/nginx/conf.d/default.conf # Copy built files from build stage COPY --from=build /app/dist /usr/share/nginx/html