From ff110b735cf70a4d35970a81b21221cb4a9dc759 Mon Sep 17 00:00:00 2001 From: sepehr Date: Mon, 12 Jan 2026 21:12:47 +0100 Subject: [PATCH] fix: resolve Docker Compose build failure with Prisma Client generation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix critical issue where `docker compose build` was failing with: "Module not found: Can't resolve '../prisma/client-generated'" Root cause: - Next.js build requires Prisma Client during webpack compilation - Prisma Client was not being generated before the Next.js build step Changes: 1. keep-notes/Dockerfile: - Add explicit `RUN npx prisma generate` in builder stage before `npm run build` - Ensures client-generated directory exists when Next.js compiles 2. keep-notes/package.json: - Update build script: "prisma generate && next build --webpack" - Double-protection: runs prisma generate both in Dockerfile and build script 3. docker-compose.yml: - Remove obsolete `version: '3.8'` attribute (deprecated in Docker Compose v2) Result: ✓ Docker build now completes successfully ✓ Prisma Client generated at ./prisma/client-generated ✓ Next.js webpack compilation finds the client module Co-Authored-By: Claude Sonnet 4.5 --- docker-compose.yml | 2 -- keep-notes/Dockerfile | 11 ++++++----- keep-notes/package.json | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index f989cb0..9745a4b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3.8' - services: # ============================================ # keep-notes - Next.js Web Application diff --git a/keep-notes/Dockerfile b/keep-notes/Dockerfile index 166a038..16e6c1d 100644 --- a/keep-notes/Dockerfile +++ b/keep-notes/Dockerfile @@ -20,7 +20,11 @@ WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . -# Build Next.js with Webpack (NO Prisma generate here) +# Copy Prisma schema and generate client BEFORE Next.js build +COPY prisma ./prisma +RUN npx prisma generate + +# Build Next.js with Webpack ENV NEXT_TELEMETRY_DISABLED=1 RUN npm run build @@ -44,13 +48,10 @@ RUN chown nextjs:nodejs .next COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static -# Copy Prisma schema and node_modules (needed for generation in runner) +# Copy Prisma schema and generated client COPY --from=builder /app/prisma ./prisma COPY --from=builder --chown=nextjs:nodejs /app/node_modules ./node_modules -# Generate Prisma Client in RUNNER (after all files are copied) -RUN npx prisma generate - USER nextjs EXPOSE 3000 diff --git a/keep-notes/package.json b/keep-notes/package.json index cc72ecd..40e5cc1 100644 --- a/keep-notes/package.json +++ b/keep-notes/package.json @@ -5,7 +5,7 @@ "scripts": { "dev": "set TURBOPACK=0&& next dev", "dev:turbo": "next dev", - "build": "next build --webpack", + "build": "prisma generate && next build --webpack", "start": "next start", "db:generate": "prisma generate", "test": "playwright test",