FROM node:20-alpine AS base RUN corepack enable && corepack prepare pnpm@9.12.0 --activate WORKDIR /app FROM base AS deps COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./ COPY apps/edr-passenger-api/package.json ./apps/edr-passenger-api/ COPY packages ./packages RUN pnpm install --frozen-lockfile --filter @edr/passenger-api... FROM deps AS build COPY apps/edr-passenger-api ./apps/edr-passenger-api RUN pnpm --filter @edr/passenger-api run prisma:generate RUN pnpm --filter @edr/passenger-api build FROM node:20-alpine AS runtime RUN corepack enable && corepack prepare pnpm@9.12.0 --activate WORKDIR /app/apps/edr-passenger-api ENV NODE_ENV=production COPY --from=deps /app/node_modules ./../../node_modules COPY --from=deps /app/apps/edr-passenger-api/node_modules ./node_modules COPY --from=build /app/apps/edr-passenger-api/dist ./dist COPY --from=build /app/apps/edr-passenger-api/package.json ./package.json COPY --from=build /app/apps/edr-passenger-api/prisma ./prisma EXPOSE 4000 CMD ["node", "dist/main.js"]