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

Docker中用Composer安装WordPress遇连接超时问题求助

解决Docker构建中Composer下载超时及Git缺失问题

问题核心

构建日志暴露三个关键问题:

  • 网络超时:Composer依赖下载触发curl error 28,无法从GitHub获取预编译包
  • Git缺失:系统未安装Git,导致无法 fallback 到源码仓库拉取依赖
  • 冗余配置警告:PHP zip模块重复加载,虽不阻断构建但需清理无效指令

修复步骤

1. 补充系统必备工具

在Dockerfile中安装Git和unzip:

  • Git:支持Composer从源码仓库拉取依赖,作为预编译包下载失败的备选方案
  • unzip:替代PHP zip扩展解压包,避免权限丢失和归档损坏的报错

2. 优化Dockerfile分层缓存

将不变的操作(系统依赖安装、PHP扩展配置)前置,可变操作(应用代码复制)后置,减少重复构建时的资源消耗。

3. 调整Composer执行逻辑

  • 本地环境先执行composer update生成composer.lock,容器内改用composer install,避免构建时重复解析依赖树
  • 给Composer设置超时参数,提升网络不稳定场景下的容错性

4. 修复composer.json配置

将johnpbloch/wordpress-core-installer插件权限设为true,否则WordPress核心无法正确安装到指定目录

修改后的Dockerfile

FROM php:8.2-fpm-bullseye

# 安装系统依赖并清理缓存,减小镜像体积
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        git \
        unzip \
        libzip-dev && \
    rm -rf /var/lib/apt/lists/*

# 安装PHP核心扩展,避免重复加载zip模块
RUN docker-php-ext-install mysqli pdo pdo_mysql zip

# 安装并启用Xdebug
RUN pecl install xdebug-3.2.0 && \
    docker-php-ext-enable xdebug

# 复制PHP配置文件
COPY ./docker/php/php.ini /usr/local/etc/php/php.ini
COPY ./docker/php/xdebug.ini /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
COPY ./docker/php/error-logging.ini /usr/local/etc/php/conf.d/error-logging.ini

WORKDIR /var/www

# 优先复制Composer配置,利用Docker分层缓存
COPY ../../app/composer.json ../../app/composer.lock ./

# 安装Composer并执行依赖安装
ENV COMPOSER_ALLOW_SUPERUSER=1
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# 设置300秒超时,可选添加国内镜像加速
RUN composer install -n --prefer-dist --timeout=300

# 最后复制完整应用代码
COPY ../../app /var/www

# 安装WP CLI
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \
    chmod +x wp-cli.phar && \
    mv wp-cli.phar /usr/local/bin/wp && \
    wp --info

# COPY ./docker/php/docker-bootup.sh /var/app/docker-bootup.sh
# CMD ["sh", "/var/app/docker-bootup.sh"]

修改后的composer.json

{
    "require": {
        "johnpbloch/wordpress": "*",
        "wpackagist-theme/bold-photography":"1.3.2"
    },
    "extra": {
        "installer-paths": {
            "wp-content/plugins/{$name}/": [
                "type:wordpress-plugin"
            ],
            "wp-content/themes/{$name}/": [
                "type:wordpress-theme"
            ]
        },
        "wordpress-install-dir": "wp"
    },
    "repositories": [{
        "type": "composer",
        "url": "https://wpackagist.org"
    }],
    "config": {
        "allow-plugins": {
            "johnpbloch/wordpress-core-installer": true
        }
    }
}

额外网络优化建议

若仍存在超时问题:

  • 给Docker daemon配置国内镜像加速(如阿里云、网易镜像)
  • 在Composer命令前添加镜像源:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 06:37:41