From f0f13f22d9222bb71c7384b7bc4e409ff83e3206 Mon Sep 17 00:00:00 2001 From: dmitriylaukhin Date: Tue, 7 Apr 2026 10:50:15 +0500 Subject: [PATCH] Fix runner stage: copy full node_modules for Prisma CLI Cherry-picking modules missed @prisma/engines and other required binaries. Copy the entire node_modules to runner to ensure prisma migrate deploy works correctly. Co-Authored-By: Claude Sonnet 4.6 --- Dockerfile | 18 ++++-------------- entrypoint.sh | 2 +- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index 36e6bdf..fbc40d0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,7 @@ COPY . . RUN npx prisma generate RUN npm run build -# Stage 3: Production runner (standalone) +# Stage 3: Production runner FROM node:20-alpine AS runner WORKDIR /app ENV NODE_ENV=production @@ -21,26 +21,16 @@ ENV NODE_ENV=production RUN addgroup --system --gid 1001 nodejs \ && adduser --system --uid 1001 nextjs -# Standalone output +# Full app: standalone output + all deps for Prisma CLI migrations COPY --from=builder /app/.next/standalone ./ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static COPY --from=builder /app/public ./public - -# Prisma: migrations + generated client COPY --from=builder /app/prisma ./prisma COPY --from=builder /app/src/generated ./src/generated COPY --from=builder /app/prisma.config.ts ./prisma.config.ts COPY --from=builder /app/tsconfig.json ./tsconfig.json - -# Prisma CLI + adapters + pg driver for migrate deploy and runtime -COPY --from=builder /app/node_modules/.bin/prisma /usr/local/bin/prisma -COPY --from=builder /app/node_modules/prisma ./node_modules/prisma -COPY --from=builder /app/node_modules/@prisma ./node_modules/@prisma -COPY --from=builder /app/node_modules/dotenv ./node_modules/dotenv -COPY --from=builder /app/node_modules/pg ./node_modules/pg -COPY --from=builder /app/node_modules/pg-pool ./node_modules/pg-pool -COPY --from=builder /app/node_modules/pg-protocol ./node_modules/pg-protocol -COPY --from=builder /app/node_modules/pg-types ./node_modules/pg-types +# Full node_modules needed for prisma CLI + all engine binaries +COPY --from=builder /app/node_modules ./node_modules COPY entrypoint.sh ./entrypoint.sh RUN chmod +x entrypoint.sh diff --git a/entrypoint.sh b/entrypoint.sh index 376047c..bc3f09f 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -2,7 +2,7 @@ set -e echo "Running database migrations..." -npx prisma migrate deploy +node /app/node_modules/.bin/prisma migrate deploy echo "Starting Next.js..." exec node server.js