【问题标题】:Folder permissions when running Symfony in Docker environment在 Docker 环境中运行 Symfony 时的文件夹权限
【发布时间】:2016-04-15 01:01:19
【问题描述】:

我在 OSX 上运行 Docker 容器。容器包括:

  1. Symfony
  2. Nginx
  3. php-fpm
  4. Redis

这是运行 Symfony 应用程序的非常常见的设置。

我遇到了一些奇怪的文件夹权限问题,我收到了这个错误: error screenshot

我的 Symfony 可以创建一个文件夹

/var/www/var/chache 

但是它不能写入它。 创建缓存文件夹后,文件夹权限设置为:

10344 drwxr-xr-x 1 1000 staff    68 Apr 15 00:33 cache

该文件夹的所有者是我的本地 OSX 用户,Docker 在其下运行。 我尝试在 Docker 中从 Symfony 的 CLI 更改文件夹权限或所有者,但没有效果。 我尝试在本地控制台下chmod -R 777,权限已更改,但 Symfony 在缓存文件夹中创建文件夹并且无法再次写入。

我也尝试在 app_dev.php 中禁用缓存:

$kernel = new AppKernel('dev', true); 
// $kernel->loadClassCache();
$request = Request::createFromGlobals();

在 config.yml 中:

twig:
    cache:        false

没有任何效果,所以我在这里迷路了。

任何想法如何解决问题?

【问题讨论】:

  • 我觉得帖子有点与我的问题有关,但并没有真正解决它:github.com/boot2docker/boot2docker/issues/581
  • 刚刚在 Ubuntu 虚拟框中运行了完全相同的一组 docker - 一切正常,所以我猜这与 OSX-Docker 权限问题有关

标签: php caching docker permissions symfony


【解决方案1】:

您还没有向您展示 Dockerfile,因此我可以给您一个带有 PHP-FPM 的容器示例,该问题已解决:

此行正在修复权限错误:usermod -u 1000 www-data

FROM debian:jessie  
RUN apt-get update
RUN apt-get install -y curl \
                       mcrypt \
    && apt-get install -y php5 \
                       php5-fpm \
                       php5-cli \
                       php-pear \
                       php5-common \
                       php5-igbinary \
                       php5-json \
                       php5-mysql \
                       php5-mysqlnd \
                       php5-gd \
                       php5-curl \
                       php5-dev \
                       php5-sqlite \
                       php5-memcached \
                       php5-memcache \
    && usermod -u 1000 www-data

EXPOSE 9000

【讨论】:

  • 它对我有用。如此简单的解决方案!非常感谢您的帮助。
  • 请您添加解释。所以usermodwww-data 用户的ID 设置为1000,是吗?这如何帮助解决这里的权限问题?谢谢。
【解决方案2】:

查看官方文档here

我在 ubuntu 上,为了解决权限问题,我执行以下命令:

$ sudo setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
$ sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-16
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 2011-01-19
    • 2019-01-07
    相关资源
    最近更新 更多