【问题标题】:Permission Issue in Docker container for Symfony2Symfony2 的 Docker 容器中的权限问题
【发布时间】:2015-12-04 10:42:15
【问题描述】:

我正在尝试创建一个 Docker 映像来引导 Symfony 项目。 这是我的 Dockerfile:

FROM php:7-apache

LABEL Description = "This image is used to start Symfony3 project"

ENV DIRPATH /var/www/html

# apt-get command
RUN apt-get update && apt-get install -y \
    vim \
    git
RUN apt-get install -y zlib1g-dev && docker-php-ext-install zip


# Install Composer
RUN curl -sS https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer

# Install the Symfony Installer
RUN curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony
RUN chmod a+x /usr/local/bin/symfony

# Create the php.ini file
RUN cp /usr/src/php/php.ini-development /usr/local/etc/php/php.ini

构建和容器创建运行良好,但我的容器存在权限问题。 当我要访问我的 app_dev.php 时,我收到以下消息:

您无权访问此文件。查看 app_dev.php 了解更多信息。

显然,我只能使用 localhost 访问此文件。 此外,PHP 无法在我的容器中删除或创建任何内容。 例如,我在运行时遇到以下错误:

$php app/console cache:clear
Failed to remove directory "/var/www/html/app/cache/dev_old/doctrine

如何在我的 Dockerfile 中解决这个问题?

【问题讨论】:

  • 如果您尝试访问 app.php 会发生什么?这里有一些技巧olegpuzanov.com/2015/01/24/dockerizing-a-symfony2-application/…
  • app.php 存在同样的问题,但消息不同。这是一个 php 错误,说明无法在 app/dev 和 app/cache 文件夹上写入内容。我检查了你的链接并尝试了它。同样的权限问题。而且我不是唯一一个。您可以在文章中看到人们 cmets。
  • 当然,好像不是什么好文章……

标签: php symfony docker dockerfile


【解决方案1】:

几周后终于找到了:

将其添加到您的 Dockerfile 中。它解决了权限问题。

# Workaround for write permission on write to MacOS X volumes
# See https://github.com/boot2docker/boot2docker/pull/534
RUN usermod -u 1000 www-data

【讨论】:

  • 注意:这也解决了我在运行 Ubuntu 16.04 来宾虚拟机(以及虚拟机内的 docker)的 Windows 10 主机上的问题
猜你喜欢
  • 2019-10-04
  • 2020-11-22
  • 2018-04-28
  • 2012-07-13
  • 2021-07-30
  • 2018-05-25
  • 2017-05-13
  • 2016-03-01
  • 2021-01-04
相关资源
最近更新 更多