# syntax=docker/dockerfile:1.7 FROM node:20-bullseye-slim AS base ENV PNPM_HOME=/root/.local/share/pnpm ENV PATH=$PNPM_HOME:$PATH RUN corepack enable FROM base AS deps WORKDIR /app COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ COPY apps/backend/package.json ./apps/backend/ RUN pnpm install --filter backend... --frozen-lockfile FROM deps AS build COPY apps ./apps RUN pnpm --filter backend build FROM base AS runtime WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/* COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ COPY apps/backend/package.json ./apps/backend/ RUN pnpm install --prod --filter backend COPY --from=build /app/apps/backend/dist ./apps/backend/dist WORKDIR /app/apps/backend EXPOSE 4000 ENV NODE_ENV=production CMD ["node", "dist/main.js"]