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
不再具有主机上的权限,并且我无法保存文件。
因此,我要么在localhost
URL 上获得权限被拒绝(如另一篇文章中所示),要么在我的 Ubuntu 主机上的 VS Code 上保存文件的权限被拒绝!(我正在使用 WSL2,这就是为什么我可以使用 VS Code)
把它们加起来:
myuser
我必须运行sudo chown -R myuser ~/myproject
www-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 次 |
最近记录: |