GitLab CI指定php:7.4镜像 本地gitlab-runner exec shell执行报PHP版本不符
问题原因
你遇到的PHP版本不匹配、image配置被忽略的问题,核心是gitlab-runner exec指定的执行器类型和CI配置逻辑不匹配:
- 你执行测试命令时指定了
shell执行器:gitlab-runner exec shell unit_test,该执行器不会创建独立的隔离运行环境,会直接在你当前的macOS本地系统环境执行所有CI脚本,检测到的7.3.29就是你本地设备默认安装的PHP版本。 .gitlab-ci.yml里的image字段仅对Docker类执行器生效(包括docker、docker+machine、docker-ssh等执行器),shell执行器会直接忽略该配置,不会拉取php:7.4镜像创建运行环境。
修复方案
如果要在本地验证CI配置效果,有两种可行方式:
- 改用docker执行器运行测试,执行前需要确保本地已经安装并启动了Docker服务:
gitlab-runner exec docker unit_test
执行器会自动拉取php:7.4镜像创建容器运行任务,完全符合CI配置要求。
2. 继续使用shell执行器的话,需要将本地macOS环境的默认PHP版本切换到7.4,满足composer依赖要求。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

