# ./Dockerfile FROM node:19-alpine WORKDIR /app # Copy package.json files for client and api COPY /client/package*.json /app/client/ COPY /api/package*.json /app/api/ COPY /package*.json /app/ # Install dependencies for both client and api RUN npm ci # Copy the current directory contents into the container COPY /client/ /app/client/ COPY /api/ /app/api/ # Set the memory limit for Node.js ENV NODE_OPTIONS="--max-old-space-size=2048" # Build artifacts for the client RUN cd /app/client && npm run build # Create the necessary directory and copy the client side code to the api directory RUN mkdir -p /app/api/client && cp -R /app/client/dist /app/api/client/dist # Make port 3080 available to the world outside this container EXPOSE 3080 # Expose the server to 0.0.0.0 ENV HOST=0.0.0.0 # Run the app when the container launches WORKDIR /app/api CMD ["npm", "start"]