【问题标题】:CodeBuild: Failing as PHP 7.4 cannot be foundCodeBuild:由于找不到 PHP 7.4 而失败
【发布时间】:2020-06-15 20:25:57
【问题描述】:

我建立了一个 AWS 管道,其中包含一个在其上部署 Laravel 应用程序的 EC2 实例。需要一个需要 PHP7.4 的新包。

我要做什么:
只需更新我的管道中使用的 PHP 版本,该版本在 AWS guideline 中被接受。

我采取了哪些步骤:
我将我的buildspec.yml 文件更新为:

  runtime-versions:
    php: 7.4

但是,我最终在日志中出现以下错误:

我的尝试:
我添加了预构建命令来更新存储库(如下所示)

pre_build:
  run-as: ec2-user
  commands:
    - apt-get update
    - apt-get upgrade -y
    - apt-get install -y php7.4-cli php7.4-zip
    - phpenmod zip  

基本上,实例似乎找不到 PHP 的版本。有没有人遇到过这种情况,如果有的话,如何在不从头开始的情况下更新版本?

【问题讨论】:

  • Odd AWS 在说明中显示 7.4 作为示例,但在运行时版本下它仅列出 7.3。如果您更新规范以使用最新版本,请验证它至少为 7.4
  • 我在 buildspec.yml 中使用版本:0.2。我会尝试版本:0.3。这是你引用的@AaronW 吗?
  • 不,我引用了您在 runtime-versions 下指定的 PHP 版本来尝试 php: latest,而不是查看它们是否至少提供 7.4 版
  • 道歉@AaronW,我应该指出。我也尝试过“最新”。它发现的最高版本是 PHP:7.3.9。
  • 也许我遗漏了一些东西 - 但您需要在尝试安装之前添加一个包含 7.4 运行时的额外源代码库

标签: php aws-code-deploy aws-codepipeline


【解决方案1】:

CodeBuild Linux 精选图像中没有 php 7.4 运行时。我已通过页面 [1] 底部的 GitHub 链接请求文档更新。

对于您的用例,我建议将环境映像更新为托管在 Dockerhub 上的自定义映像“php:7.4.3-cli”,以将此映像用作您的构建容器。

我用一个简单的构建规范对此进行了测试:

version: 0.2

phases:
  install:
    commands:
      - php -v
  build:
    commands:
      - date

结果:

[Container] 2020/03/05 14:49:57 Entering phase INSTALL
[Container] 2020/03/05 14:49:57 Running command php -v
PHP 7.4.3 (cli) (built: Feb 26 2020 12:05:30) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

参考:

[1]https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html

【讨论】:

  • 这很有意义。在文档中看到该版本后,我确信该版本可用。我将用 Docker 托管的图像替换该图像。谢谢。
【解决方案2】:

您可以在构建映像 Amazon Linux 2 standard:3.0Ubuntu standard:4.0 中使用 php 7.4 了解更多详情,请点击以下链接。

https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 2022-01-08
    • 2023-02-07
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    相关资源
    最近更新 更多