# NestJS API + Prisma. Build context is the monorepo root. FROM node:20-bookworm-slim AS build WORKDIR /app COPY package.json package-lock.json ./ COPY apps/api/package.json apps/api/package.json COPY apps/web/package.json apps/web/package.json COPY packages/shared/package.json packages/shared/package.json RUN npm ci COPY apps/api apps/api COPY packages/shared packages/shared RUN npm run build -w @mento/shared \ && npm run prisma:generate -w @mento/api \ && npm run build -w @mento/api FROM node:20-bookworm-slim WORKDIR /app RUN apt-get update \ && apt-get install -y --no-install-recommends openssl ca-certificates \ && rm -rf /var/lib/apt/lists/* COPY --from=build /app/package.json /app/package-lock.json ./ COPY --from=build /app/node_modules ./node_modules COPY --from=build /app/packages/shared ./packages/shared COPY --from=build /app/apps/api/package.json ./apps/api/package.json COPY --from=build /app/apps/api/dist ./apps/api/dist COPY --from=build /app/apps/api/prisma ./apps/api/prisma WORKDIR /app/apps/api ENV NODE_ENV=production EXPOSE 3000 CMD ["node", "dist/src/main.js"]