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:
parent
2ac60094bd
commit
ddf221cece
|
|
@ -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 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 --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)
|
# Copy Prisma schema and generate client if this service uses @prisma/client.
|
||||||
# prisma generate runs in builder stage; production pnpm install skips build scripts
|
# prisma is kept in dependencies so it is available after --prod install.
|
||||||
COPY --from=builder /app/node_modules/.prisma /app/node_modules/.prisma
|
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}
|
WORKDIR /app/packages/services/${SERVICE_NAME}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@
|
||||||
"date-fns": "^2.30.0",
|
"date-fns": "^2.30.0",
|
||||||
"date-fns-tz": "^2.0.1",
|
"date-fns-tz": "^2.0.1",
|
||||||
"ioredis": "^5.3.0",
|
"ioredis": "^5.3.0",
|
||||||
|
"prisma": "^5.9.0",
|
||||||
"reflect-metadata": "^0.2.0",
|
"reflect-metadata": "^0.2.0",
|
||||||
"rxjs": "^7.8.0",
|
"rxjs": "^7.8.0",
|
||||||
"uuid": "^9.0.0"
|
"uuid": "^9.0.0"
|
||||||
|
|
@ -32,7 +33,6 @@
|
||||||
"@nestjs/cli": "^10.3.0",
|
"@nestjs/cli": "^10.3.0",
|
||||||
"@types/express": "^4.17.21",
|
"@types/express": "^4.17.21",
|
||||||
"@types/node": "^20.11.0",
|
"@types/node": "^20.11.0",
|
||||||
"prisma": "^5.9.0",
|
|
||||||
"typescript": "^5.4.0"
|
"typescript": "^5.4.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -721,6 +721,9 @@ importers:
|
||||||
ioredis:
|
ioredis:
|
||||||
specifier: ^5.3.0
|
specifier: ^5.3.0
|
||||||
version: 5.9.2
|
version: 5.9.2
|
||||||
|
prisma:
|
||||||
|
specifier: ^5.9.0
|
||||||
|
version: 5.22.0
|
||||||
reflect-metadata:
|
reflect-metadata:
|
||||||
specifier: ^0.2.0
|
specifier: ^0.2.0
|
||||||
version: 0.2.2
|
version: 0.2.2
|
||||||
|
|
@ -740,9 +743,6 @@ importers:
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^20.11.0
|
specifier: ^20.11.0
|
||||||
version: 20.19.33
|
version: 20.19.33
|
||||||
prisma:
|
|
||||||
specifier: ^5.9.0
|
|
||||||
version: 5.22.0
|
|
||||||
typescript:
|
typescript:
|
||||||
specifier: ^5.4.0
|
specifier: ^5.4.0
|
||||||
version: 5.9.3
|
version: 5.9.3
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue