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

在现有Laravel项目中使用Sail时Composer安装google/apiclient失败求助

环境信息
  • Sail版本:1.16.2
  • Laravel版本:9.37
  • PHP版本:8.1
  • 主机操作系统:macOS 12.3

问题描述

我想在现有Laravel应用中使用Sail,按照官方文档执行以下命令安装Composer依赖时,安装到google/apiclient-services失败,报错:

Install of google/apiclient-services failed
In Filesystem.php line 314: Could not delete /var/www/html/vendor/composer/cc83f9bf/googleapis-google-api-php-client-services-52b4942/src/OrgPolicyAPI:

执行的命令是:

docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/var/www/html \
    -w /var/www/html \
    laravelsail/php81-composer:latest \
    composer install --ignore-platform-reqs

可行解决方案

1. 清理本地残留文件后重新执行

先在本地项目目录执行:

rm -rf vendor composer.lock
rm -rf ~/.composer/cache

然后重新运行原来的Docker命令。

2. 临时跳过用户权限指定执行命令

macOS的文件权限有时会导致容器内无法删除文件,试试去掉-u "$(id -u):$(id -g)"参数执行:

docker run --rm \
    -v $(pwd):/var/www/html \
    -w /var/www/html \
    laravelsail/php81-composer:latest \
    composer install --ignore-platform-reqs

执行完成后修复本地文件权限:

sudo chown -R $(id -u):$(id -g) vendor composer.lock

3. 使用Sail shell执行Composer命令

如果项目根目录已有sail脚本,直接进入容器执行:

./sail shell

进入容器后执行:

composer install --ignore-platform-reqs

这种方式权限问题更少,因为是在容器内部环境操作。

4. 升级Composer版本后再安装

容器内的Composer版本可能较旧,试试先更新Composer再执行安装:

docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/var/www/html \
    -w /var/www/html \
    laravelsail/php81-composer:latest \
    composer self-update && composer install --ignore-platform-reqs

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:01:07