Laravel 9执行sail:publish命令失败,无法创建docker目录
问题描述
尝试创建Dockerfile以运行Xdebug,执行sail artisan sail:publish命令时出现以下错误:
INFO Publishing [sail-docker] assets. League\Flysystem\UnableToCreateDirectory Unable to create a directory at /var/www/html/docker/. at vendor/league/flysystem/src/UnableToCreateDirectory.php:20 16▕ 17▕ public static function atLocation(string $dirname, string $errorMessage = '', ?Throwable $previous = null): UnableToCreateDirectory 18▕ { 19▕ $message = "Unable to create a directory at {$dirname}. {$errorMessage}"; ➜ 20▕ $e = new static(rtrim($message), 0, $previous); 21▕ $e->location = $dirname; 22▕ 23▕ return $e; 24▕ } +31 vendor frames 32 artisan:37 Illuminate\Foundation\Console\Kernel::handle()

已尝试的操作:
sudo chown -R $USER:$USER ./vendor/sudo chmod -R 755 /var/www/storagesudo chmod 777 docker-compose.yml -Rf
解决方法
- 检查并修复根目录权限
报错核心是无法创建/var/www/html/docker/目录,先确认/var/www/html的所有者和权限:
ls -ld /var/www/html
若当前用户不是该目录所有者,执行以下命令修改:
sudo chown -R $USER:$USER /var/www/html sudo chmod -R 755 /var/www/html
- 手动创建目标目录
直接提前创建docker目录并配置权限,再执行发布命令:
sudo mkdir -p /var/www/html/docker sudo chown -R $USER:$USER /var/www/html/docker sudo chmod -R 755 /var/www/html/docker
之后重新运行:
sail artisan sail:publish
- 容器内权限排查(若在容器中执行命令)
如果是在Sail容器内运行命令,进入容器后检查目录权限:
sail shell ls -ld /var/www/html
权限不足时,在容器内执行:
chown -R sail:sail /var/www/html chmod -R 755 /var/www/html
内容的提问来源于stack exchange,提问作者Mario Cadena
相关产品推荐
相关产品推荐

