FROM node:24-alpine AS frontend-builder WORKDIR /app/frontend COPY frontend/package.json frontend/pnpm-lock.yaml* ./ RUN npm install -g pnpm && pnpm install --frozen-lockfile COPY frontend/ ./ RUN pnpm build FROM node:24-alpine AS backend-builder WORKDIR /app/backend COPY backend/package.json backend/pnpm-lock.yaml* ./ RUN npm install -g pnpm && pnpm install --frozen-lockfile COPY backend/ ./ COPY prisma/ ../prisma/ RUN pnpm run generate && pnpm run build FROM node:24-alpine AS runner WORKDIR /app RUN apk add --no-cache openssl COPY --from=backend-builder /app/backend/dist ./backend/dist COPY --from=backend-builder /app/backend/node_modules ./backend/node_modules COPY --from=backend-builder /app/backend/package.json ./backend/package.json COPY --from=frontend-builder /app/frontend/dist ./frontend/dist COPY prisma/ ./prisma/ WORKDIR /app/backend EXPOSE 5000 CMD sh -c "npx prisma migrate deploy --schema=../prisma/schema.prisma && node dist/index.js"