# BUILD ENVIRONMENT FROM node:23-slim AS builder WORKDIR /app ARG APP_SUBFOLDER="" COPY .npmrc .npmrc COPY package*.json ./ RUN npm install RUN rm -f .npmrc COPY . ./ # build the react app RUN if [ -z "$APP_SUBFOLDER" ]; then npm run build; else VITE_APP_BASE_URL=/${APP_SUBFOLDER}/ npm run build; fi # PRODUCTION ENVIRONMENT FROM node:23-slim ARG APP_SUBFOLDER="" RUN printf '\n\n- Copy application files\n' COPY --from=builder /app/build ./application/${APP_SUBFOLDER} COPY --from=builder /app/build/index.html ./application/ COPY --from=builder /app/runtimeSetup.js ./application/runtimeSetup.js #install static server RUN npm install -g serve # environment variables ENV AUTHOR="Tudor Stanciu" ENV APP_NAME="Network resurrector UI" ENV VITE_APP_BASE_URL=/${APP_SUBFOLDER}/ ARG APP_VERSION=0.0.0 ENV APP_VERSION=${APP_VERSION} ARG APP_DATE="-" ENV APP_DATE=${APP_DATE} #set workdir to root WORKDIR / EXPOSE 80 CMD ["sh", "-c", "node application/runtimeSetup.js && serve -s application -l 80 --no-clipboard"]