FROM node:20-alpine AS builder WORKDIR /app COPY package.json yarn.lock .yarnrc.yml ./ COPY .yarn ./.yarn RUN corepack enable && yarn install --immutable # Generate Prisma Client COPY prisma ./prisma/ RUN yarn prisma generate # Build TypeScript COPY tsconfig.json ./ COPY src ./src/ RUN yarn tsc FROM node:20-alpine AS runner WORKDIR /app COPY package.json yarn.lock .yarnrc.yml ./ COPY .yarn ./.yarn RUN corepack enable && yarn install --immutable --production COPY --from=builder /app/dist ./dist CMD ["node", "dist/index.js"]