Ship prebuilt Prisma client so the server never runs prisma generate
prisma generate needs over three minutes on the production host, which made every deploy hang on that build step. The client is now generated on the dev machine into prisma-client.tar.gz (tracked, 8.5MB) and the image just untars it. Dropping the unused linux-musl engine target halves that payload. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -27,15 +27,16 @@ npm run start:dev
|
||||
|
||||
## دیپلوی: بیلد روی سیستم خودت، اجرا روی سرور
|
||||
|
||||
روی سرور هیچ `npm` یا دانلودی لازم نیست. `node_modules` از قبل داخل
|
||||
`deploy-bundle.tar.gz` (روی گیت) است و `dist` هم روی گیت commit میشود.
|
||||
روی سرور هیچ `npm` و هیچ دستور `prisma` اجرا نمیشود. سه چیز از قبل ساخته و روی
|
||||
گیت هستند: `dist`، `prisma-client.tar.gz` (کلاینت Prisma) و
|
||||
`deploy-bundle.tar.gz` (`node_modules` پروداکشن).
|
||||
|
||||
**۱) روی سیستم خودت:**
|
||||
|
||||
```bash
|
||||
cd fabric_trade_server
|
||||
npm run build
|
||||
git add dist && git commit -m "..." && git push
|
||||
npm run deploy:build
|
||||
git add dist prisma-client.tar.gz && git commit -m "..." && git push
|
||||
```
|
||||
|
||||
**۲) روی سرور:**
|
||||
@@ -47,9 +48,12 @@ docker compose up -d --build
|
||||
docker compose logs -f api
|
||||
```
|
||||
|
||||
`Dockerfile` باندل را باز میکند، بعد `dist` و `prisma` و `package.json` را از
|
||||
گیت روی آن مینویسد و `prisma generate` میزند؛ پس تغییر schema و مایگریشن
|
||||
جدید هم فقط با `git pull` میرسد.
|
||||
`Dockerfile` باندل را باز میکند، بعد `dist` و `prisma` و کلاینت آمادهی Prisma
|
||||
را روی آن مینویسد. `prisma generate` روی هاست پروداکشن چند دقیقه طول میکشد،
|
||||
پس عمداً آنجا اجرا نمیشود.
|
||||
|
||||
هر بار که `prisma/schema.prisma` را عوض کردی، `npm run deploy:build` را بزن تا
|
||||
`prisma-client.tar.gz` هم بهروز شود؛ وگرنه سرور با کلاینت قدیمی بالا میآید.
|
||||
|
||||
**فقط اگر پکیج npm جدید اضافه شد** باندل را دوباره بساز و push کن:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user