FROM node:20-bookworm-slim AS frontend-build WORKDIR /app/frontend COPY frontend/package.json ./ RUN npm install COPY frontend/ ./ RUN npm run build FROM node:20-bookworm-slim AS backend-build WORKDIR /app/backend COPY backend/package.json ./ RUN npm install COPY backend/ ./ RUN npm run build FROM node:20-bookworm-slim WORKDIR /app COPY --from=backend-build /app/backend/package.json ./ RUN npm install --omit=dev COPY --from=backend-build /app/backend/dist ./dist COPY --from=frontend-build /app/frontend/dist ./public ENV NODE_ENV=production EXPOSE 3000 CMD ["node", "dist/server.js"]