fix(presence-service): generate prisma client in docker production stage

- Move prisma from devDependencies to dependencies so it is available
  after pnpm install --prod in the Dockerfile production stage
- Replace failed COPY of /app/node_modules/.prisma (pnpm virtual store
  path differs) with: COPY schema.prisma + RUN prisma generate in stage-1
- Only runs if schema.prisma exists (safe for all other services)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-03-07 18:10:43 -08:00
parent 2ac60094bd
commit ddf221cece
3 changed files with 11 additions and 7 deletions

View File

@ -83,9 +83,13 @@ COPY --from=builder /app/packages/services/${SERVICE_NAME}/dist packages/service
# Copy SQL migration templates alongside compiled shared code in each service dist
COPY --from=builder /app/packages/shared/database/src/migrations packages/services/${SERVICE_NAME}/dist/shared/database/src/migrations/
# Copy Prisma generated client (required for services using @prisma/client)
# prisma generate runs in builder stage; production pnpm install skips build scripts
COPY --from=builder /app/node_modules/.prisma /app/node_modules/.prisma
# Copy Prisma schema and generate client if this service uses @prisma/client.
# prisma is kept in dependencies so it is available after --prod install.
ARG SERVICE_NAME
COPY --from=builder /app/packages/services/${SERVICE_NAME}/prisma packages/services/${SERVICE_NAME}/prisma/
RUN test -f packages/services/${SERVICE_NAME}/prisma/schema.prisma && \
cd packages/services/${SERVICE_NAME} && \
node_modules/.bin/prisma generate --schema prisma/schema.prisma || true
WORKDIR /app/packages/services/${SERVICE_NAME}

View File

@ -24,6 +24,7 @@
"date-fns": "^2.30.0",
"date-fns-tz": "^2.0.1",
"ioredis": "^5.3.0",
"prisma": "^5.9.0",
"reflect-metadata": "^0.2.0",
"rxjs": "^7.8.0",
"uuid": "^9.0.0"
@ -32,7 +33,6 @@
"@nestjs/cli": "^10.3.0",
"@types/express": "^4.17.21",
"@types/node": "^20.11.0",
"prisma": "^5.9.0",
"typescript": "^5.4.0"
}
}

View File

@ -721,6 +721,9 @@ importers:
ioredis:
specifier: ^5.3.0
version: 5.9.2
prisma:
specifier: ^5.9.0
version: 5.22.0
reflect-metadata:
specifier: ^0.2.0
version: 0.2.2
@ -740,9 +743,6 @@ importers:
'@types/node':
specifier: ^20.11.0
version: 20.19.33
prisma:
specifier: ^5.9.0
version: 5.22.0
typescript:
specifier: ^5.4.0
version: 5.9.3