gpt4 book ai didi

php - 如何处理来自 docker 的卷内的权限?

转载 作者:行者123 更新时间:2023-12-02 18:44:23 24 4
gpt4 key购买 nike

我有一个运行 PHP 应用程序的容器,php-fpm 服务无法将缓存文件写入 docker volume 提供的文件夹中。

我从主机上为我需要写入的文件夹授予了 777 权限,但它只工作了一段时间。 php-fpm 创建的文件没有必要的权限。此外,无法使用 chown 命令更改所有者和组。

这是我的 docker-composer.yml 文件:

web:
image: eduardoleal/nginx
external_links:
- proxy
links:
- php:php
container_name: "app-web"
environment:
VIRTUAL_HOST: web.app
volumes_from:
- data
volumes:
- ./src/nginx-vhost.conf:/etc/nginx/sites-enabled/default
php:
image: eduardoleal/php56
container_name: "app-web-php"
volumes_from:
- data
data:
container_name: "app-web-data"
image: phusion/baseimage
volumes:
- /Users/eduardo.leal/Code/vidaclass/web:/var/www/public

我在 OSX 上使用 VirtualBox 运行 docker。

最佳答案

MacOS 有一些安装问题,因为 usergroup 拥有文件与 usergroup 不同> 修改/读取文件。作为解决方法,执行以下 Docker(最好使用最新版本)

$ brew install docker-machine-nfs
$ docker-machine start yourdockermachine
$ docker-machine-nfs yourdockermachine --shared-folder=/Users --nfs-config="-alldirs -maproot=0"

您可以根据需要更改yourdockermachine 的名称。此外,您还可以更改要映射的共享文件夹。上面的选项是最好的选择,适用于所有情况。我建议不要更改它,以免弄乱系统文件。

完成上述设置后,请确保为您的文件和文件夹提供适当的读取、写入和执行权限。

注意:上述过程的依赖项是brewdocker-machine(或为简单起见,完整的docker工具箱)

更新 1:Docker for Mac Beta处于私有(private)邀请阶段。它在 xhyve Hypervisor 之上的 Mac 上原生运行 Docker。这意味着不再有权限错误并提高了性能。

更新 2:Docker for Mac现在处于公开测试阶段。底层技术保持不变,VM 完全由 Docker 服务管理。撰写本文时的版本是 1.12.0-rc2,它可以与 OS X 无缝协作,无需 docker-machine 的任何干预。

关于php - 如何处理来自 docker 的卷内的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36068456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com