已有项目安装Laravel Sail后目录属主root如何改为sail(组1000)
Laravel Sail 项目目录属主为root的修复方案
运行中容器快速修复
如果已经执行sail up启动了服务,直接在宿主机终端执行以下命令,进入容器递归修改项目目录属主为sail用户、用户组ID为1000:
# 替换laravel.test为你实际的sail容器名,默认命名规则是<项目目录名_laravel.test_1> docker exec -it laravel.test chown -R sail:1000 /var/www/html
执行完成后立即生效,不需要重启容器。
永久修复(避免重启/重新安装后复现)
- 先停掉正在运行的sail服务:
sail down
- 在宿主机项目根目录执行命令,递归把整个项目目录的属主修改为UID 1000、GID 1000(和容器内sail用户的身份标识完全匹配):
sudo chown -R 1000:1000 ./
- 后续如果需要在容器内执行composer相关操作,不要直接使用
$(id -u):$(id -g)传递当前宿主机用户身份,直接指定用户为1000:1000即可,参考命令:
docker run --rm \ -u "1000:1000" \ -v $(pwd):/var/www/html \ -w /var/www/html \ composer install --ignore-platform-reqs
注意:如果你自定义过sail容器内的用户UID/GID,把上面命令里的1000替换成你实际配置的数值即可。修改完成后重新执行
sail up启动服务,不会再出现目录权限异常。
内容的提问来源于stack exchange,提问作者Archi
相关产品推荐
相关产品推荐

