Laravel Docker storage cache 目录写入失败,而 views 成功,已检查相同权限

重现步骤

docker run -p 8000:80 \
    --env APP_NAME="Wifidog Auth" \
    --env APP_ENV=local \
    --env APP_KEY=base64:silhtn4zkyodaaDIRSU0QEqq4CwKfjdzLqZectaHIi8= \
    --env DB_CONNECTION=sqlite \
    wifidog/wifidog-auth-laravel:debug

open http://localhost:8000/

curl 'http://localhost:8000/ping?gw_id=001217DA42D2&sys_uptime=742725&sys_memfree=2604&sys_load=0.03&wifidog_uptime=3861'

报错

local.ERROR: file_put_contents(/var/www/laravel/storage/framework/cache/data/37/24/37246234cdba9eafcda0eb4e6953564f4b57fcdf): Failed to open stream: No such file or directory {“exception”:”[object] (ErrorException(code: 0): file_put_contents(/var/www/laravel/storage/framework/cache/data/37/24/37246234cdba9eafcda0eb4e6953564f4b57fcdf): Failed to open stream: No such file or directory at /var/www/laravel/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:133)

检查目录权限

docker ps
docker exec -it xxx bash
ls -la storage/framework/cache/data/
ls -la storage/framework/views/

可以看到 cache 和 views 的权限相同,都是 www-data 755,但 views 成功写入了临时文件,而 cache 没有。

Laravel Docker storage cache 目录写入失败,而 views 成功,已检查相同权限

代码

Dockerfilegithub.com/wifidog/wifidog-auth-la...
启动脚本:
github.com/wifidog/wifidog-auth-la...

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

找到问题了……竟然是 macOS 的 docker 需要单独开辟硬盘空间,满了…… Linux docker 没这个概念,原生的

file

2年前 评论
讨论数量: 3

这个报错应该不是权限问题,是报没有对应文件夹,应该是没有创建对应的文件夹

2年前 评论

找到问题了……竟然是 macOS 的 docker 需要单独开辟硬盘空间,满了…… Linux docker 没这个概念,原生的

file

2年前 评论

@sinkcup 咦,我记得我的mac用docker没有整过这些操作呀

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!