FROM node:18-alpine as builder WORKDIR /app # Copy package files from portal directory COPY portal/package*.json ./ RUN npm install # Copy the rest of the portal files COPY portal/ . RUN npm run build FROM nginx:alpine # Create nginx cache directory and set permissions RUN mkdir -p /var/cache/nginx \ && chown -R nginx:nginx /var/cache/nginx \ && chmod -R 755 /var/cache/nginx \ && mkdir -p /var/log/nginx \ && chown -R nginx:nginx /var/log/nginx \ && chmod -R 755 /var/log/nginx \ && touch /var/run/nginx.pid \ && chown -R nginx:nginx /var/run/nginx.pid \ && chown -R nginx:nginx /etc/nginx/conf.d COPY --from=builder /app/build /usr/share/nginx/html RUN chown -R nginx:nginx /usr/share/nginx/html COPY portal/nginx.conf /etc/nginx/conf.d/default.conf # Switch to non-root user USER nginx EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]