| 12345678910111213141516171819202122232425262728293031323334353637383940 | FROM node:20-alpine AS baseWORKDIR /appRUN npm install -g pnpm# Install dependenciesFROM base AS depsCOPY package.json pnpm-lock.yaml ./COPY prisma ./prismaRUN pnpm install --frozen-lockfile# Build the appFROM base AS builderCOPY --from=deps /app/node_modules ./node_modulesCOPY --from=deps /app/prisma ./prismaCOPY . .COPY .env.example .envRUN pnpm run build# Production image, copy only necessary filesFROM base AS runnerWORKDIR /appCOPY --from=builder /app/public ./publicCOPY --from=builder /app/.next ./.nextCOPY --from=builder /app/node_modules ./node_modulesCOPY --from=builder /app/package.json ./package.jsonCOPY --from=builder /app/prisma ./prismaCOPY --from=builder /app/data ./dataCOPY scripts /appRUN chmod +x /app/setup.shENTRYPOINT ["/app/setup.sh"]EXPOSE 3000ENV PORT=3000CMD ["pnpm", "start"]
 |