diff --git a/.dockerignore b/.dockerignore index 74af1be..1354766 100644 --- a/.dockerignore +++ b/.dockerignore @@ -55,10 +55,6 @@ coolify-compose.yml # Uploads (runtime only) uploads -# Prisma -packages/database/prisma/migrations/* -!packages/database/prisma/migrations/.gitkeep - # Misc *.orig *.bak diff --git a/apps/api/Dockerfile b/apps/api/Dockerfile index 6d0b762..e8cc1c3 100644 --- a/apps/api/Dockerfile +++ b/apps/api/Dockerfile @@ -1,27 +1,21 @@ # Coolify / producción — API NestJS FROM node:22-alpine AS base -RUN corepack enable && corepack prepare pnpm@9.15.0 --activate +RUN corepack enable && corepack prepare pnpm@9.15.0 --activate && \ + npm install -g prisma@6.8.2 WORKDIR /app FROM base AS deps COPY package.json pnpm-workspace.yaml pnpm-lock.yaml* ./ COPY apps/api/package.json ./apps/api/ COPY packages/database/package.json ./packages/database/ -RUN pnpm install --no-frozen-lockfile 2>/dev/null +RUN pnpm install --frozen-lockfile 2>/dev/null || pnpm install FROM base AS builder COPY --from=deps /app/node_modules ./node_modules COPY . . -RUN echo "=== Checking prisma binary ===" && \ - ls -la node_modules/.bin/prisma* 2>&1; \ - echo "=== Checking schema ===" && \ - ls -la packages/database/prisma/schema.prisma 2>&1; \ - echo "=== Running prisma generate ===" && \ - cd packages/database && pnpm exec prisma generate 2>&1; \ - echo "=== Building database ===" && \ - cd /app && pnpm --filter @moraworld/database build 2>&1; \ - echo "=== Building api ===" && \ - cd /app && pnpm --filter @moraworld/api build 2>&1 +RUN prisma generate --schema=packages/database/prisma/schema.prisma && \ + cd packages/database && pnpm build && \ + cd /app && pnpm --filter @moraworld/api build FROM node:22-alpine AS runner WORKDIR /app diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile index de398b1..991afc2 100644 --- a/apps/web/Dockerfile +++ b/apps/web/Dockerfile @@ -1,25 +1,22 @@ # Coolify / producción — Next.js standalone FROM node:22-alpine AS base -RUN corepack enable && corepack prepare pnpm@9.15.0 --activate +RUN corepack enable && corepack prepare pnpm@9.15.0 --activate && \ + npm install -g prisma@6.8.2 WORKDIR /app FROM base AS deps COPY package.json pnpm-workspace.yaml pnpm-lock.yaml* ./ COPY apps/web/package.json ./apps/web/ COPY packages/database/package.json ./packages/database/ -RUN pnpm install --no-frozen-lockfile 2>/dev/null +RUN pnpm install --frozen-lockfile 2>/dev/null || pnpm install FROM base AS builder COPY --from=deps /app/node_modules ./node_modules COPY . . ARG NEXT_PUBLIC_API_URL=http://localhost:3001 ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL -RUN echo "=== Checking prisma binary ===" && \ - ls -la node_modules/.bin/prisma* 2>&1; \ - echo "=== Running prisma generate ===" && \ - cd packages/database && pnpm exec prisma generate 2>&1; \ - echo "=== Building web ===" && \ - cd /app && pnpm --filter @moraworld/web build 2>&1 +RUN prisma generate --schema=packages/database/prisma/schema.prisma && \ + pnpm --filter @moraworld/web build FROM node:22-alpine AS runner WORKDIR /app