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

Dockerfile升级PHP从7.3到7.4时docker-php-ext-install执行失败

Dockerfile PHP7.3升7.4 executor failed错误排查

报错信息

executor failed running [/bin/sh -c docker-php-ext-install bcmath
ctype dom gd hash iconv intl mbstring
mysqli opcache pdo_mysql simplexml sockets soap
sodium xsl zip ;]: exit code: 2

错误原因

  • PHP 7.4 已将 hash、ctype、iconv、simplexml、sodium 扩展纳入核心默认内置,无需通过 docker-php-ext-install 手动安装,保留这些扩展在安装列表中会触发命令执行错误,返回状态码2
  • 原配置中使用的APCU扩展版本5.1.18对PHP7.4的兼容性不足,也可能引发安装阶段异常

解决方案

  1. 调整docker-php-ext-install的扩展列表,删除上述5个内置扩展
  2. 将APCU版本升级到兼容PHP7.4的5.1.21及以上版本
  3. 可选:在apt安装命令末尾增加缓存清理逻辑,避免冗余文件占用镜像空间,同时减少包缓存导致的安装异常

修改后对应片段代码

# 升级APCU版本
ENV APCU_VERSION=5.1.21

RUN apt-get update && apt-get install -y --no-install-recommends gnupg \
    netcat \
    sudo \
    libicu-dev \
    libfreetype6-dev \
    libjpeg-dev \
    libpng-dev \
    libsodium-dev \
    libxml2-dev \
    libxslt-dev \
    libzip-dev \
    rsync \
    unzip \
    git \
    openssh-client \
    && apt-get clean && rm -rf /var/lib/apt/lists/* \
    ;

RUN pecl install apcu-${APCU_VERSION}

RUN docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/
RUN docker-php-ext-install \
    bcmath \
    dom \
    gd \
    intl \
    mbstring \
    mysqli \
    opcache \
    pdo_mysql \
    sockets \
    soap \
    xsl \
    zip \
    ;

修改后重新构建镜像即可解决该报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:36:04