FROM node:22-alpine AS builder WORKDIR /app COPY package.json yarn.lock* ./ RUN yarn install --frozen-lockfile 2>/dev/null || npm install COPY . . RUN npx prisma generate RUN npm run build FROM node:22-alpine AS dev WORKDIR /app COPY package.json yarn.lock* ./ RUN yarn install --frozen-lockfile 2>/dev/null || npm install COPY . . RUN npx prisma generate EXPOSE 3000 CMD ["npm", "run", "start:dev"] FROM node:22-alpine WORKDIR /app COPY package.json yarn.lock* ./ RUN yarn install --production --frozen-lockfile 2>/dev/null || npm install --production COPY --from=builder /app/prisma ./prisma COPY --from=builder /app/dist ./dist EXPOSE 3000 CMD ["node", "dist/main"]