pil*_*eup 3 ubuntu laravel docker
我已经从这篇文章中看到了解决方案:“/sf/ask/3538707931/
但这个解决方案还不够
问题是,如果我执行解决方案中所述的操作,即chown -R www-data:www-data *在 Docker 容器内运行 - 它还会更改 Ubuntu 主机中实际文件夹的权限,而不仅仅是容器,因为我在文件中设置了此文件夹docker-compose.yml:
php:
build:
context: ./laravel
dockerfile: Dockerfile
container_name: laravel
volumes:
- ./laravel:/var/www/html
Run Code Online (Sandbox Code Playgroud)
这是Dockerfile:
FROM php:fpm-alpine
RUN docker-php-ext-install pdo pdo_mysql
Run Code Online (Sandbox Code Playgroud)
我在Ubuntu主机中的用户是myuser这样,当我运行时chown -R www-data:www-data *, myuser不再具有主机上的权限,并且我无法保存文件。
因此,我要么在localhostURL 上获得权限被拒绝(如另一篇文章中所示),要么在我的 Ubuntu 主机上的 VS Code 上保存文件的权限被拒绝!(我正在使用 WSL2,这就是为什么我可以使用 VS Code)
把它们加起来:
myuser我必须运行sudo chown -R myuser ~/myprojectwww-data,因此我无法访问我的网站localhost- 如上面的帖子所示。chown -R www-data:www-data /var/www/,我将失去myuser主机中的权限并且无法再次保存文件,反之亦然。在您的docker-compose.yml文件中,添加user: <uid>:<gid>
php:
build:
context: ./laravel
dockerfile: Dockerfile
container_name: laravel
user: "1000:1000" #type the "id" command in your terminal and look for uid and gid if you don't know what they are
volumes:
- ./laravel:/var/www/html
Run Code Online (Sandbox Code Playgroud)
这样,php-fpm 将以具有以下标识符的用户身份执行:
myuser),它将具有与 php-fpm 相同的标识符| 归档时间: |
|
| 查看次数: |
5850 次 |
| 最近记录: |