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

Ubuntu 22.04下Docker运行Laravel Composer无法创建vendor目录

解决Laravel Sail/Composer容器权限问题

一、针对拉取的现有项目

报错/var/www/html/vendor does not exist and could not be created的核心是容器内用户没有挂载目录的写入权限,别乱执行chown,按以下步骤处理:

  • 先不指定用户,临时用容器root权限执行composer安装(自动创建vendor目录):
docker run --rm \
-v $(pwd):/var/www/html \
-w /var/www/html \
laravelsail/php81-composer:latest \
composer install --ignore-platform-reqs
  • 把生成的vendor目录权限同步到宿主用户:
sudo chown -R $USER:$USER vendor
  • 后续再用带用户参数的命令执行composer操作就不会触发权限问题。

嫌容器操作麻烦的话,也可以直接在宿主机器安装Composer,直接执行composer install --ignore-platform-reqs,再用Sail启动服务,权限完全匹配宿主用户。

二、针对全新Laravel Sail项目

执行sail up后运行composer install或npm install报错权限,是因为Sail容器默认使用www-data用户,和宿主用户权限不匹配,解决方法有两种:

方法一:临时修改容器内目录权限

  • 进入Sail容器的root shell:
sail root-shell
  • 在容器内修改项目目录权限:
chown -R sail:sail /var/www/html
  • 退出容器后,用sail composer install或sail npm install执行命令即可正常运行。

方法二:配置环境变量永久匹配权限

  • 在项目的.env文件中添加以下变量(替换为宿主用户的UID和GID,不确定的话在宿主执行id -u和id -g查看):
WWWUSER=1000
WWWGROUP=1000
  • 重启容器生效:
sail down && sail up -d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:42:27