fix: Prisma binary download for Iran servers

This commit is contained in:
2026-05-06 18:04:19 +03:30
parent ea6e67b4e8
commit b0a345c6b7
23 changed files with 285 additions and 116 deletions

View File

@@ -1,30 +1,40 @@
FROM node:20-alpine AS deps
WORKDIR /app
ENV NODE_ENV=development
ENV PRISMA_ENGINES_MIRROR=https://binaries.prismacdn.com
ENV PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING=1
ENV PRISMA_SKIP_POSTINSTALL_GENERATE=1
COPY package.json package-lock.json ./
COPY prisma ./prisma
RUN npm ci
RUN npx prisma generate
RUN npm ci --ignore-scripts
FROM node:20-alpine AS builder
WORKDIR /app
ARG DATABASE_URL
ARG NEXTAUTH_URL
ARG NEXTAUTH_SECRET
ARG IPPANEL_TOKEN
ENV DATABASE_URL=$DATABASE_URL
ENV NEXTAUTH_URL=$NEXTAUTH_URL
ENV NEXTAUTH_SECRET=$NEXTAUTH_SECRET
ENV IPPANEL_TOKEN=$IPPANEL_TOKEN
ENV NEXT_TELEMETRY_DISABLED=1
ENV PRISMA_ENGINES_MIRROR=https://binaries.prismacdn.com
ENV PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING=1
ENV PRISMA_SKIP_POSTINSTALL_GENERATE=1
COPY --from=deps /app/node_modules ./node_modules
COPY --from=deps /app/prisma ./prisma
COPY . .
# Set Prisma to use local engines if they exist
ENV PRISMA_QUERY_ENGINE_BINARY=/app/prisma/engines/query-engine
ENV PRISMA_SCHEMA_ENGINE_BINARY=/app/prisma/engines/schema-engine
ENV PRISMA_QUERY_ENGINE_LIBRARY=/app/prisma/engines/query-engine
# Generate Prisma client using local engines
RUN if [ -f prisma/engines/query-engine ]; then \
npx prisma generate; \
else \
echo "Warning: Prisma engines not found, build may fail"; \
fi
ENV NODE_ENV=production
RUN npm run build
RUN npm prune --omit=dev