| FROM node:20-alpine AS base | |
| USER root | |
| ENV PNPM_HOME="/pnpm" | |
| ENV PATH="$PNPM_HOME:$PATH" | |
| RUN npm i -g pnpm | |
| FROM base AS builder | |
| WORKDIR /app | |
| COPY . . | |
| # Add lockfile and package.json's of isolated subworkspace | |
| FROM base AS installer | |
| RUN apk update | |
| WORKDIR /app | |
| COPY .gitignore .gitignore | |
| COPY --from=builder /app/out/json/ . | |
| COPY --from=builder /app/out/pnpm-lock.yaml ./pnpm-lock.yaml | |
| COPY --from=builder /app/out/pnpm-workspace.yaml ./pnpm-workspace.yaml | |
| RUN pnpm install | |
| # Build the project | |
| COPY --from=builder /app/out/full/ . | |
| COPY --from=builder /app/packages/backend/run.sh ./packages/backend/run.sh | |
| RUN pnpx turbo run db:generate \ | |
| & pnpx turbo run build | |
| WORKDIR /app/packages/backend | |
| CMD pnpx prisma migrate deploy && node /app/packages/backend/dist/main.js | |