Все, что вам нужно сделать, это изменить разрешение смонтированного каталога на самом хосте, например, если у вас есть следующий каталог на хосте /home/lykos/laravel/data
, и вам нужно смонтировать его в контейнере докера, выполните следующее:
- Проверьте
UID
и GID
внутри контейнера, который используется для запуска бега, например, вы можете найти UID
и GID
со следующим значением 1000
, затем изhost запустите следующую команду chown 1000:1000 /home/lykos/laravel/data
Теперь приложение laravel должно иметь возможность писать в любой каталог, который вы используете в качестве места назначения для /home/lykos/laravel/data
, и убедиться, что вы не изменили его безподтверждая, что у вас есть правильное разрешение, например, не создавайте другой каталог внутри него вручную, если вы не выполните chown
после его создания.
Приведенное выше решение работает для пользователя, который будет использоваться для записи в этот каталог, еслиЕсть другие пользователи, которым вы должны предоставить разрешение, возможно, через Linux.acl вместо использования мирового разрешения (777)
Допустим, у вас есть контейнер в качестве веб-сервера, и вы должны хранить приложение, размещенное внутри контейнера, при разработке с вашего локального хоста.Предполагая, что локальный пользователь, который используется для разработки, - lykos
, а пользователь контейнера, который используется веб-сервером, - 33
для UID
и GID
, вы можете сделать следующее с вашего локального хоста:
sudo chown 33:33 /home/lykos/laravel/data -R
sudo setfacl -Rm u:lykos:rwx,d:u:lykos:rwx /home/lykos/laravel/data
Приведенная выше команда даст веб-серверу возможность доступа и обновления файлов проекта.а также дает вашему локальному хосту возможность изменять текущие файлы и вновь созданные файлы (обратите внимание, что если вы создаете какой-либо файл или каталог, используя пользователя lykos
, вам нужно сделать chown
, чтобы соответствовать uid веб-сервера)