繁体   English   中英

Alpine中的作曲家 Docker PHP 致命错误

[英]Composer in Alpine Docker PHP Fatal error

更新:php-curl 扩展导致分段错误。

我在 ARM64 上使用 alpine 3.15 和 PHP 7.0 和 7.1 运行 docker 管道。

我使用安装作曲家

COPY --from=composer:latest  /usr/bin/composer /usr/bin/composer

自昨天(4 月 5 日)以来,所有管道都失败并出现以下错误:

PHP 致命错误:Composer\IO\BaseIO::hasAuthentication($repositoryName) 的声明必须与 phar:///usr/bin/composer/src/Composer 中的 Composer\IO\IOInterface::hasAuthentication(string $repositoryName) 兼容/IO/BaseIO.php 第 20 行

我尝试使用旧版本的作曲家,但在所有这些版本上我得到:

分段故障

这在过去的 6 个月里运行良好。 所以最近在作曲家构建上发生了一些变化。 我还尝试在 Intel 上运行并以经典方式安装作曲家,但是,我也遇到了同样的错误。

您正在安装composer:latest ,从今天开始将安装 Composer 2.3。 你正在 PHP 7.0 和 PHP 7.1 上进行。

Composer 2.3 不再支持那些 PHP 版本(PHP 也不再支持它的价值)。

如 2.2 发行说明中所述,Composer 2.3 将所需的 PHP 版本增加到 >=7.2.5,从而停止支持 PHP 5.3.2 - 7.2.4。 2.2 LTS 仍然适用于使用旧版 PHP 的用户。

您的选择是:

  • 升级 PHP 所以使用支持的东西。 如果你必须留在 v7,你至少可以升级到 PHP 7.4
  • 使用旧版本的作曲家。 不要使用不受约束的“最新”标签,而是指向您知道它受支持的特定标签。

您可以尝试使用 2.2 版,我认为应该可以。 如果没有,请继续向后退,直到找到适合您的堆栈的一个。

COPY --from=composer:2.2  /usr/bin/composer /usr/bin/composer

行不通

FROM php:7.1-cli-alpine

COPY --from=composer:2.3  /usr/bin/composer /usr/bin/composer

RUN mkdir /someproject
WORKDIR /someproject

RUN composer create-project symfony/skeleton .

但这

FROM php:7.1-cli-alpine

COPY --from=composer:2.2  /usr/bin/composer /usr/bin/composer

RUN mkdir /someproject
WORKDIR /someproject

RUN composer create-project symfony/skeleton .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM