# ./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"] | |