# Use a multi-stage build FROM farhan23432/ris_git:2.30.1 AS code # Set build arguments and labels ARG BUILD_ID RUN echo $BUILD_ID LABEL stage=builder LABEL build_id=$BUILD_ID # Clone repository and copy React.js code RUN mkdir /repo WORKDIR /repo RUN git clone http://$GITEA_USER:$GITEA_PASS@157.66.191.31:3000/risadmin_prod/testrb1409.git COPY . . # Use a multi-stage build FROM node:14-alpine AS builder # Set working directory WORKDIR /app # Copy React.js code and install dependencies COPY --from=code /repo/testrb1409/testrb1409-front-f/Authsec_ReactBootStrapNew/ . # Clear everything and do a fresh install RUN rm -rf node_modules && \ rm -rf package-lock.json && \ npm cache clean --force # Install html2canvas first with exact version RUN npm install html2canvas@1.4.1 --save-exact --no-package-lock # Install all other dependencies RUN npm install --force --legacy-peer-deps # Verify the package is installed RUN ls -la node_modules/html2canvas && \ ls -la node_modules/html2canvas/dist # Set environment variables ENV PUBLIC_URL=http://157.66.191.31:34514/testrb140939198/front ENV NODE_PATH=/app/node_modules # Run build RUN npm run build # Use Nginx as the web server FROM nginx:alpine # Copy build artifacts from the previous stage to serve React.js application COPY --from=builder /app/build /usr/share/nginx/html # Expose port 80 EXPOSE 80 # Start Nginx when the container runs CMD ["nginx", "-g", "daemon off;"]