我有一个容器化的Laravel应用。我的所有容器都在运行。当我运行命令docker-compose exec app php artisan tinker
时,我收到错误
ErrorException
Writing to directory /home/darula/.config/psysh is not allowed.
其他artisan命令(如docker compose exec app php artisan migrate
)也能正常工作。
我尝试将目录的所有权更改为当前所有者。还尝试将.config目录的权限更改为755
。当我在没有docker-compose
的情况下运行php artisan tinker
时,命令只运行文件。当我在非容器化应用程序中运行php artisan tinker
时,它也能正常工作。
为了在容器化应用上运行tinker,我需要做什么?
1条答案
按热度按时间nuypyhwy1#
在为我的项目创建了一个定制的Docker之后,我遇到了同样的错误。
不知道这是否是你的情况,但在评论中,它说docker需要一个有效的用户才能运行。
要进行检查,只需连接运行laravel应用程序的docker shell,看看“用户”是否显示为没有名称。
如果它没有一个“名称”,你只需要修改你的Dockerfile脚本添加一个用户。
您可以在
docker-compose.yml
中将参数作为变量传递(通常UID和GID为1000),以确认您可以运行:以及
WWWUSER和WWWGROUP只是一个内部运行系统的用户,就像sail一样。
重建你的容器并启动它。在我的例子中它修复了。