AWS CodeBuild 错误:运行时'nodejs'不支持别名'14.x'的主要版本



我对AWS CodeBuild有一个令人困惑的问题。我得到以下错误:

Major version of alias '14.x' is not supported in runtime 'nodejs'

当我将buildspec更新为";14〃;我得到了更多关于错误的信息:

Message: Unknown runtime version named '14' of nodejs. This build image has the following versions: 10, 12

我们已经使用这个CodeBuild项目很长时间了,使用12.x,现在需要更新到14.x。我们更新了构建规范如下:

version: 0.2
phases:
install:
runtime-versions:
nodejs: 14.x
build:
commands:
- "npm i"
- "npm run build"
- "npm run db:migrate"
artifacts:
files:
- "all"
- "of"
- "our"
- "files"

此外,我们的CodeBuild已经在最新版本的CodeBuild映像上。我甚至重新构建了CodeBuild项目,以确保它是最新的,并且仍然是同一个问题:

aws/codebuild/amazonlinux2-x86_64-standard:3.0

提前谢谢你的建议。

谢天谢地,我们现在已经解决了这个问题!

问题出在CodeBuild映像上:

aws/codebuild/amazonlinux2-x86_64-standard:3.0

根据可用的运行时文档,我们根本无法使用AmazonLinux2,我们不得不更改为";Ubuntu Standard 5";。

我希望这对将来的某个人有所帮助。

如果你绝对需要使用Amazon Linux 2而不是Ubuntu,你可以使用CodeBuild:中预装的n包安装Node 14

version: 0.2
phases:
install:
commands:
- n 14.18.3
build:
commands:
- npm i #etc

在我们的案例中,我们需要构建依赖项以在Lambda中运行。由于Lambda运行的是AmazonLinux2版本,因此在Ubuntu中构建这些依赖关系并不奏效(由于复杂的子依赖关系原因(。

尝试过但没有成功:

  • 在CodeBuild中卸载和安装节点:当我们运行node --version时,它仍然说12
  • 使用nvm安装和管理版本:在注册nvm命令时遇到问题

然后我们意识到n已经预先安装在CodeBuild中并管理节点版本。

最终,不需要复杂的命令。

从这里选择支持运行时的构建映像https://docs.aws.amazon.com/codebuild/latest/userguide/available-runtimes.html

最新更新