FROM node:22-alpine WORKDIR /app ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" ENV NEXT_TELEMETRY_DISABLED=1 # Pin pnpm to the version declared in package.json packageManager RUN corepack enable && corepack prepare pnpm@9.15.0 --activate # Install dependencies first using workspace manifests for better cache reuse. COPY package.json pnpm-lock.yaml pnpm-workspace.yaml turbo.json .npmrc ./ COPY apps/web/package.json apps/web/package.json COPY apps/worker/package.json apps/worker/package.json COPY apps/realtime/package.json apps/realtime/package.json COPY packages/prisma/package.json packages/prisma/package.json COPY packages/shared/package.json packages/shared/package.json COPY packages/eslint-config/package.json packages/eslint-config/package.json COPY packages/typescript-config/package.json packages/typescript-config/package.json RUN pnpm install --frozen-lockfile COPY . . RUN pnpm db:generate CMD ["sh"]