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

通过CodePipeline部署Prisma ORM项目到Elastic Beanstalk报错求助

问题根因

  • 你仅为Prisma客户端指定了部署环境(Elastic Beanstalk Amazon Linux)的二进制目标,缺失了构建环境(CodeBuild Ubuntu)的适配配置
  • 构建流程中prisma generate的执行时机存在问题:npm install执行时会默认触发Prisma客户端生成,此时使用的是默认配置,后续post_build阶段的生成操作如果没有正确覆盖,会导致最终打包的客户端仍然没有目标二进制文件
  • 如果构建产物未包含node_modules/.prisma目录,Elastic Beanstalk部署时自动执行的npm install会重新生成客户端,也会出现配置不生效的问题

解决方案

  1. 修正schema.prisma的二进制目标配置,同时适配构建和部署两个环境:
generator client {
  provider      = "prisma-client-js"
  binaryTargets = ["native", "rhel-openssl-1.0.x"]
}

其中native适配CodeBuild的Ubuntu构建环境,rhel-openssl-1.0.x适配Elastic Beanstalk的Amazon Linux运行环境。

  1. 调整buildspec执行顺序,确保生成的Prisma客户端配置生效:
install:
  commands:
    - npm ci
    # 安装依赖后立刻执行生成命令,覆盖npm install默认生成的客户端
    - npm run generate
post_build:
  commands:
    - echo Build completed on `date`
    # 可选校验步骤,确认目标二进制已生成
    - ls node_modules/.prisma/client/ | grep rhel-openssl-1.0.x
  1. 检查buildspec的artifacts配置,确保node_modules/.prisma目录被包含在上传到Elastic Beanstalk的构建产物中,避免部署时重新生成客户端。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:09:02