PHP_Tools flex_exec工具运行失败:gcloud命令‘builds’选项无效,是否需适配最新gcloud命令?
解决flex_exec与新版gcloud命令的适配问题
你遇到的报错核心原因是:php-tools工具包中的flex_exec组件仍在调用旧版gcloud的命令语法,而新版gcloud已经对命令结构做了调整——原本的gcloud container builds相关命令被整合到了gcloud builds下,工具里的旧命令调用自然就失效了。
下面是几个可行的解决办法:
1. 优先升级php-tools工具包
官方大概率已经针对新版gcloud做了适配修复,先尝试更新工具包:
composer update google/cloud-tools
更新完成后,再重新执行你的命令:
./vendor/bin/flex_exec run -- php -v
2. 手动修复工具包的命令调用
如果升级后问题依旧,你可以手动修改报错提示的ContainerExec.php文件(第113行附近):
- 找到文件中调用
gcloud container builds的代码片段 - 将其替换为新版gcloud的命令格式,比如把旧的
gcloud container builds ...替换为gcloud builds submit ...(具体要根据代码里的实际命令逻辑调整)
3. 绕过工具包,直接用gcloud原生命令
如果暂时不想折腾工具包,也可以直接用gcloud原生命令在App Engine Flex容器中执行操作:
# 第一步:获取目标服务版本的实例ID gcloud app instances list --service=default --version=YOUR_VERSION # 第二步:进入容器执行命令(替换INSTANCE_ID为上一步得到的实例ID) gcloud app instances ssh INSTANCE_ID --service=default --version=YOUR_VERSION --command="php -v"
总结
这个问题确实需要工具包适配新版gcloud命令,优先升级是最省心的方案;如果官方还没推送修复,手动修改代码或者使用原生gcloud命令也能解决你的需求。
内容的提问来源于stack exchange,提问作者Bill
相关产品推荐
相关产品推荐

