You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过GitHub Actions部署Next.js+Prisma到Vercel遇引擎错误

问题解决方案

Vercel运行环境说明

Vercel的服务器运行环境基于RHEL 7.x(Red Hat Enterprise Linux 7),内核版本为Linux 3.10.x,配套OpenSSL 1.0.2版本,对应Prisma的平台标识就是你遇到的rhel-openssl-1.0.x。Node.js版本默认是18.x,可在Vercel项目控制台的「Settings」->「General」中调整指定版本。

GitHub Actions适配调整方案

你当前使用ubuntu-latest Runner构建时,Prisma默认生成适配Debian/Ubuntu的引擎(对应debian-openssl-1.1.x),但Vercel需要的是RHEL兼容的引擎,调整步骤如下:

1. 确认schema.prisma配置

确保generator client块的binaryTargets同时包含本地开发/构建用平台和Vercel所需平台,避免本地构建报错:

generator client {
  provider      = "prisma-client-js"
  binaryTargets = ["debian-openssl-1.1.x", "rhel-openssl-1.0.x"]
}

2. 在GitHub Actions中指定Prisma生成目标平台

在构建流程的prisma generate步骤,强制指定生成rhel-openssl-1.0.x平台的引擎,覆盖Runner默认的平台。示例GitHub Actions配置片段:

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 18
          cache: 'npm'

      - name: Install dependencies
        run: npm ci

      - name: Generate Prisma Client for Vercel
        run: npx prisma generate --binary-target rhel-openssl-1.0.x
        env:
          DATABASE_URL: ${{ secrets.DATABASE_URL }} # 若生成时需连接数据库(如数据预取)

      - name: Build Next.js app
        run: npm run build

      - name: Deploy to Vercel
        run: npx vercel deploy --prod --token ${{ secrets.VERCEL_TOKEN }}

关键说明

  • 即便用ubuntu-latest构建,只要在prisma generate时指定目标平台,就能生成适配Vercel运行环境的查询引擎,无需更换Runner环境。
  • 若你的Next.js站点是纯静态SSG,但构建阶段用到Prisma(比如静态页面数据预取),该调整同样有效——构建生成的引擎会随代码部署到Vercel,供后续ISR/SSG增量更新使用。

内容的提问来源于stack exchange,提问作者Adam Jenkins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:35:22