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

使用AWS Amplify Gen2部署Next.js14时GLIBC版本错误致构建失败

解决AWS Amplify Gen2部署Next.js14时的GLIBC版本错误

问题分析

你遇到的GLIBC_2.27/2.28缺失错误,核心原因是手动通过nvm安装的Node.js二进制包与amplify:al2023镜像的系统库不兼容。al2023镜像自带的GLIBC版本高于2.28,但nvm默认安装的Node包可能是针对其他发行版(如Ubuntu)编译的,依赖特定版本的GLIBC符号,导致运行时匹配失败。

解决方案

方案1:移除手动nvm命令,使用Amplify内置Node版本

amplify:al2023镜像已经预装了适配系统的Node.js,无需手动通过nvm安装/切换版本。修改你的amplify.yml配置如下:

version: 1
backend:
  phases:
    build:
      commands:
        - npm ci
        - npx amplify pipeline-deploy --branch $AWS_BRANCH --app-id $AWS_APP_ID
frontend:
  phases:
    preBuild:
      commands:
        - npm ci
    build:
      commands:
        - npm run build
  artifacts:
    baseDirectory: .next
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*
image:
  buildImage: 'amplify:al2023'
env:
  variables:
    NODE_VERSION: 20
  • 通过env.variables.NODE_VERSION指定所需Node版本,Amplify会自动加载适配al2023的对应版本,避免GLIBC依赖冲突。

方案2:若必须使用nvm,强制Node使用系统库

如果一定要保留nvm命令,安装Node时添加--system-libs参数,让Node依赖系统自带的GLIBC:

修改backend阶段的命令:

backend:
  phases:
    build:
      commands:
        - nvm install 20 --system-libs
        - nvm use 20
        - npm ci
        - npx amplify pipeline-deploy --branch $AWS_BRANCH --app-id $AWS_APP_ID

方案3:清理构建缓存

旧缓存可能残留了不兼容的依赖或Node二进制文件,在Amplify控制台的构建页面点击清理缓存并重新构建,彻底清除旧缓存后重试。

补充说明

  • 避免在amplify.yml中手动管理Node版本,优先使用Amplify镜像自带的版本管理机制,这是最稳定的方式。
  • 若仍有依赖包报错GLIBC问题,检查是否有第三方依赖使用了预编译二进制包,可尝试删除package-lock.json后重新安装,或替换为纯JS实现的替代包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:05:28