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

如何确保GitHub Actions与Docker容器内的Composer等工具版本一致?

本地Docker容器内执行构建与测试步骤

1. 执行Composer构建/更新

先确保Devilbox容器处于运行状态,可直接在主机执行命令调用容器内的Composer:

# 替换devilbox_php_x.x为你的容器名(如devilbox_php8.2),/path/to/laravel为项目在容器内的路径
docker exec -it devilbox_php_x.x composer install -d /path/to/laravel
# 更新依赖
docker exec -it devilbox_php_x.x composer update -d /path/to/laravel

如果需要进入容器操作:

docker exec -it devilbox_php_x.x bash
# 切换到项目目录后执行
cd /path/to/laravel
composer install

2. 运行单元/集成测试

直接在主机调用容器内的Artisan:

docker exec -it devilbox_php_x.x php /path/to/laravel/artisan test

或进入容器后执行:

cd /path/to/laravel
php artisan test

3. 运行Laravel Dusk浏览器测试

Dusk需要GUI环境,在容器内配置并执行:

# 进入容器
docker exec -it devilbox_php_x.x bash
# 安装Xvfb虚拟显示服务
apt update && apt install -y xvfb
# 后台启动Xvfb
Xvfb :99 -screen 0 1920x1080x24 &
# 设置显示端口环境变量
export DISPLAY=:99
# 切换到项目目录运行Dusk
cd /path/to/laravel
php artisan dusk

也可以整合成单条主机命令:

docker exec -it devilbox_php_x.x bash -c "apt update && apt install -y xvfb && Xvfb :99 -screen 0 1920x1080x24 & export DISPLAY=:99 && cd /path/to/laravel && php artisan dusk"
GitHub Actions同步工具版本配置

1. 锁定本地工具版本

  • 在项目根目录创建.php-version文件,写入容器内的PHP版本(如8.2)
  • 在容器内执行composer self-update x.x.x固定Composer版本,composer.lock会自动记录该版本

2. 编写GitHub Actions工作流

在项目.github/workflows目录下创建tests.yml,严格匹配本地Docker内的PHP和Composer版本:

name: Laravel Tests
on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: 拉取代码
        uses: actions/checkout@v4

      - name: 配置PHP环境
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.2' # 与Devilbox内PHP版本一致
          tools: composer:v2.6 # 与容器内Composer版本一致
          extensions: mbstring, dom, curl, sqlite3 # 按需添加项目依赖扩展

      - name: 安装依赖
        run: composer install --no-interaction --prefer-dist

      - name: 初始化Laravel环境
        run: |
          cp .env.example .env
          php artisan key:generate

      - name: 运行单元/集成测试
        run: php artisan test

      - name: 运行Dusk测试
        run: |
          sudo apt-get install -y xvfb chromium-browser
          Xvfb :99 -screen 0 1920x1080x24 &
          export DISPLAY=:99
          php artisan dusk

3. 维护版本一致性

每次本地Docker容器内更新PHP或Composer版本后,同步更新.php-version文件和GitHub Actions工作流中的对应版本值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 17:35:24