diff --git a/src/Managing.WebApp/Dockerfile-web-ui-dev b/src/Managing.WebApp/Dockerfile-web-ui-dev index 3e48221..be7e2e9 100644 --- a/src/Managing.WebApp/Dockerfile-web-ui-dev +++ b/src/Managing.WebApp/Dockerfile-web-ui-dev @@ -1,45 +1,46 @@ -# Set base image for the builder stage -FROM node:18.17.0 AS builder +ARG NODE_VERSION=18.20.0 +ARG ALPINE_VERSION=3.19.0 +FROM node:${NODE_VERSION}-alpine AS node + +FROM alpine:${ALPINE_VERSION} AS builder + +COPY --from=node /usr/lib /usr/lib +COPY --from=node /usr/local/lib /usr/local/lib +COPY --from=node /usr/local/include /usr/local/include +COPY --from=node /usr/local/bin /usr/local/bin + +RUN node -v # Set the working directory in the container WORKDIR /app - -# Install xsel if needed (uncomment if required in your environment) -# RUN apt-get update && apt-get install -y xsel + # Copy the package.json and package-lock.json first to leverage Docker's cache COPY ./src/Managing.WebApp/package*.json ./ -# Optionally, add a specific package ignoring engine check -RUN yarn add whatwg-fetch@3.6.2 --ignore-engines +RUN npm config set registry http://registry.cnpmjs.org +# Install dependencies +#RUN npm ci --production --loglevel=verbose +#RUN npm i --omit=dev --loglevel=verbose -# Install all project dependencies with Yarn -RUN yarn install +RUN npm i --max-old-space-size=12000 --loglevel=verbose -# Clear Yarn cache to ensure no corrupted data interferes with installation -RUN yarn cache clean - -# Copy the rest of your application code +# Copy the application code COPY . . -# Set necessary environment variables (if they are not secrets) -ENV NODE_ENV=development -ENV VITE_API_URL_LOCAL=https://localhost:5001 -ENV VITE_API_URL_SERVER=https://localhost - -# Build the application with increased memory options for Node -RUN node --max-old-space-size=4096 ./node_modules/.bin/vite build +# Build the Vite application +RUN npm run build # Stage 2: Create the runtime image -FROM --platform=linux/arm64/v8 nginx:alpine +FROM nginx:alpine # Copy the built Vite application from the builder stage COPY --from=builder /app/dist /usr/share/nginx/html -# Copy a custom Nginx configuration file (if needed) +# Copy a custom Nginx configuration file (if you need one) # COPY nginx.conf /etc/nginx/nginx.conf -# Expose port 80 for the Nginx server +# Expose port 80 EXPOSE 80 -# Command to start the Nginx server +# Start the Nginx server CMD ["nginx", "-g", "daemon off;"]