fix(dockerfile): use pnpm exec prisma generate in production stage

pnpm does not hoist workspace package binaries to /app/node_modules/.bin;
each package's .bin/ is only available within that package's node_modules.
Use 'pnpm exec prisma generate' from the service directory so pnpm can
resolve the prisma binary from the local node_modules/.bin symlink.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-03-07 20:16:19 -08:00
parent 7edbea6ff0
commit 432cdc46a8
1 changed files with 3 additions and 2 deletions

View File

@ -91,8 +91,9 @@ ARG SERVICE_NAME
COPY --from=builder /app/packages/services/${SERVICE_NAME}/prisma packages/services/${SERVICE_NAME}/prisma/ COPY --from=builder /app/packages/services/${SERVICE_NAME}/prisma packages/services/${SERVICE_NAME}/prisma/
RUN if [ -f "packages/services/${SERVICE_NAME}/prisma/schema.prisma" ]; then \ RUN if [ -f "packages/services/${SERVICE_NAME}/prisma/schema.prisma" ]; then \
echo "Running prisma generate for ${SERVICE_NAME}..." && \ echo "Running prisma generate for ${SERVICE_NAME}..." && \
/app/node_modules/.bin/prisma generate \ cd packages/services/${SERVICE_NAME} && \
--schema /app/packages/services/${SERVICE_NAME}/prisma/schema.prisma && \ pnpm exec prisma generate --schema prisma/schema.prisma && \
cd /app && \
echo "Prisma generate completed."; \ echo "Prisma generate completed."; \
else \ else \
echo "No prisma/schema.prisma found — skipping prisma generate."; \ echo "No prisma/schema.prisma found — skipping prisma generate."; \