AWS CodeBuild error: Major version of alias '14.x' is not supported in runtime 'nodejs'

AWS CodeBuild error: Major version of alias '14.x' is not supported in runtime 'nodejs'

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

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

当我将构建规范更新为简单的“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

根据 the available runtimes documentation 事实证明我们根本无法使用亚马逊 Linux 2,我们不得不更改为“Ubuntu 标准 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 运行 是 Amazon Linux 2 的一个版本,因此在 Ubuntu 中构建这些依赖关系不起作用(出于复杂的子依赖关系原因)。

尝试过但没有成功:

然后我们意识到和管理节点版本。

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

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