У меня есть приложение Laravel, работающее в контейнере Laradock Docker, и оно каждый день создает новый файл журнала.
Но в последнее время * каждый день в полночь по Гринвичу мне нужно исправлять права доступа к файлу журнала, потому что он начинает иметь ошибки:
UnexpectedValueException: The stream or file "/var/www/myapp/storage/logs/laravel-2019-01-07.log" could not be opened: failed to open stream: Permission denied
Когда я запускаю ls -lah
, я вижу, что вновь созданный файл ежедневного журнала принадлежит «root» вместо «laradock»
Итак, я запускаю chown laradock:laradock laravel-2019-01-07.log
, чтобы исправить это. Но тогда проблема повторяется на следующий день.
* Я сказал «недавно», и единственное изменение, о котором я знаю, это то, что я выключил свой сервер Digital Ocean, изменил его размер, снова включил и запустил контейнеры Docker.
Что бы я ни делал во время этого процесса, казалось, препятствовал созданию новых файлов с правильным владельцем.
Как я могу это исправить?
Новая информация:
Я также только что заметил, что эта команда больше не работает:
cd /apps/laradock/ && docker-compose exec workspace bash -c "cd /var/www/myapp/; npm run production"
и вызывает bash: npm: command not found
, но потом, когда я вхожу в контейнер и запускаю его (как root), он работает. Так что проблема с разрешениями влияет даже больше, чем я думал.