# Build stage for client FROM node:14 AS client-build WORKDIR /app/client COPY client/package*.json ./ RUN npm install COPY client/ ./ RUN npm run build -- --mode production # Build stage for server FROM node:14 AS server-build WORKDIR /app/server COPY server/package*.json ./ RUN npm install COPY server/ ./ RUN npm run build # Production stage FROM node:14-alpine WORKDIR /app COPY --from=client-build /app/client/build ./client/build COPY --from=server-build /app/server/dist ./server/dist COPY --from=server-build /app/server/package*.json ./server/ WORKDIR /app/server RUN npm install --only=production EXPOSE 5000 CMD ["node", "dist/index.js"]