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

如何使用Docker在本地针对多版本PHP运行类库单元测试?

本地用Docker多PHP版本测试PHP类库的最简方案

方案一:单命令快速测单个版本

不需要任何配置文件,直接用官方PHP镜像挂载本地代码,安装依赖后跑测试。以PHPUnit为例:

  • 测试PHP 7.4:
    docker run --rm -v $(pwd):/app php:7.4-cli bash -c "cd /app && apt update && apt install -y unzip && php -r \"copy('https://getcomposer.org/installer', 'composer-setup.php');\" && php composer-setup.php --install-dir=/usr/local/bin --filename=composer && composer install && ./vendor/bin/phpunit"
    
  • 换版本只需要把php:7.4-cli改成php:8.0-cli、php:8.1-cli之类的官方镜像标签即可。

这种方式适合临时验证单个版本,胜在零配置,缺点是每次运行都会重复安装依赖,速度稍慢。

方案二:Docker Compose批量跑多版本

如果需要一次性测试多个版本,用Docker Compose更高效,一次配置可重复运行:

  1. 在类库根目录创建docker-compose.yml:

    version: '3'
    services:
      php74-test:
        image: php:7.4-cli
        volumes:
          - .:/app
        command: >
          bash -c "apt update && apt install -y unzip &&
                   php -r \"copy('https://getcomposer.org/installer', 'composer-setup.php');\" &&
                   php composer-setup.php --install-dir=/usr/local/bin --filename=composer &&
                   composer install &&
                   ./vendor/bin/phpunit"
      php80-test:
        image: php:8.0-cli
        volumes:
          - .:/app
        command: >
          bash -c "apt update && apt install -y unzip &&
                   php -r \"copy('https://getcomposer.org/installer', 'composer-setup.php');\" &&
                   php composer-setup.php --install-dir=/usr/local/bin --filename=composer &&
                   composer install &&
                   ./vendor/bin/phpunit"
      php81-test:
        image: php:8.1-cli
        volumes:
          - .:/app
        command: >
          bash -c "apt update && apt install -y unzip &&
                   php -r \"copy('https://getcomposer.org/installer', 'composer-setup.php');\" &&
                   php composer-setup.php --install-dir=/usr/local/bin --filename=composer &&
                   composer install &&
                   ./vendor/bin/phpunit"
    
  2. 启动所有测试:

    docker-compose up
    

补充说明

  • 如果测试需要PHP扩展(比如pdo_mysql、gd),可以在apt update之后添加docker-php-ext-install pdo_mysql这类命令安装。
  • 要是已经有composer.lock文件,composer install会更快;如果不需要开发依赖,可加--no-dev参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 12:47:04