FROM node:22-slim AS base WORKDIR /app ARG NPM_REGISTRY=https://registry.npmjs.org/ ENV NPM_CONFIG_REGISTRY=${NPM_REGISTRY} ENV npm_config_registry=${NPM_REGISTRY} ENV PNPM_HOME="/pnpm" ENV PATH="${PNPM_HOME}:${PATH}" RUN corepack enable && npm config set registry ${NPM_REGISTRY} FROM base AS build COPY package.json pnpm-lock.yaml ./ RUN pnpm install --frozen-lockfile COPY . . ENV PRISMA_CLIENT_ENGINE_TYPE=binary RUN pnpm run build FROM base AS prod-deps COPY package.json pnpm-lock.yaml ./ RUN pnpm install --prod --frozen-lockfile \ && pnpm store prune \ && rm -rf /root/.npm /root/.cache FROM node:22-slim AS runtime WORKDIR /app ENV NODE_ENV=production COPY --from=prod-deps /app/node_modules ./node_modules COPY --from=build /app/dist ./dist COPY --from=build /app/prisma ./prisma COPY --from=build /app/package.json ./package.json USER node CMD ["node", "dist/src/main.js"]