Intereting Posts
Как использовать балансировку нагрузки приложения для службы ECS с несколькими сопоставлениями портов? Docker обратный прокси-сервер nginx дает «502 Bad Gateway» pecl install mongo command for mongo-1.5.5.tgz производит неверную ошибку tgz Транспортировка контейнера Docker с использованием свойств LFS Xdebug распадается на доступ к статическому свойству класса Создание изображения докеров с помощью maven Развертывание Docker для AWS Elastic Beanstalk – как перенаправить порт на хост? (привязка порта) Не удается создать docker mysql с контейнером только для данных Конструкция Docker ведет к «отсутствию свободного места на устройстве» в Windows 10 Как отладить неработающий сертификат RSA без пароля в OpenSSH на Alpine? Докер поверх Linux, но работает внутри Windows Запись локального аудио в контейнере докера Централизованная среда разработки команды с докером Docker выставляет ссылку на хост-машину Отключение приватного реестра докеров

Как изменить разрешения подключенного тонера на OSX для работы с веб-сервером Nginx под управлением Laravel 5.1?

Я использую Docker для запуска Larvel 5.1 для создания PDF-файлов, поэтому моя проблема заключается в том, что файл успешно сгенерирован без ошибок и сохраняется на установленном томе. Проблема возникает, когда я пытаюсь вытащить файл обратно, чтобы отобразить его, используя Storage::disk('local')->get($filename); я получил

 ErrorException in Local.php line 187: file_put_contents(/app/storage/app/savedfile.pdf): failed to open stream: Permission denied. 

Я также попытался изменить разрешения внутри контейнера докеров, а также вручную на смонтированном томе, это не помогло.

Вот код, который я использовал для сохранения файла

  $snappy = new Pdf('wkhtmltopdf'); $tmpFile = storage_path().'/app/savedfile.pdf'; $snappy->setOption('images', true); $snappy->setOption('footer-right', '[page] OF [topage]'); $result = $snappy->generateFromHtml( $view->render(), $tmpFile ); Storage::disk('local')->put('report.pdf', \File::get($tmpFile)); 

Кто-нибудь знает, как я могу это решить?

Пользователи докеров не совпадают с хост-машинами. Вы должны убедиться, что пользователь хоста и пользователь контейнера, которые обращаются к установленному тому, имеют доступ к файлам тома.

Вы можете достичь этого несколькими способами, например:

  1. Сделать файлы доступными для чтения / записи
  2. Убедитесь, что идентификатор пользователя как хост-компьютера, так и контейнера одинаковый
  3. Измените разрешения файла после его написания

После внесения изменений вы сможете читать / писать pdf-файлы.

Потребовал мне время, чтобы попытаться исправить это, но когда был установлен докер для Mac, я быстро перешел к нему, с тех пор у меня не было проблем с правами.

Поэтому я рекомендую вам проверить Докер для Mac