我正在为我的Symfony
应用程序构建Docker映像,我需要授予对Apache服务器的权限以写入缓存和日志文件夹
#Dockerfile
FROM php:7-apache
RUN apt-get update \
&& apt-get install -y libicu-dev freetds-common freetds-bin unixodbc \
&& docker-php-ext-install intl mbstring \
&& a2enmod rewrite
COPY app/php.ini /usr/local/etc/php/
COPY app/apache2.conf /etc/apache2/apache2.conf
COPY ./ /var/www/html
RUN find /var/www/html/ -type d -exec chmod 755 {} \;
RUN find /var/www/html/ -type f -exec chmod 644 {} \;
RUN chmod -R 777 /var/www/html/app/cache /var/www/html/app/logs
当我使用构建该映像docker build -t myname/symfony_apps:latest .
并使用运行容器时docker run -p 8080:80 myname/symfony_apps:latest
。Apache日志中充满了权限被拒绝的错误,我检查过的奇怪的事情ls -a
和权限都很好。当我从容器的bash运行chmod时,apache权限问题消失了,该应用程序运行良好
情况
从dockerfile运行chmod命令:权限已更改,但apache仍然抱怨权限被拒绝。 在容器中使用bash运行chmod相同的命令:权限已更改,我的应用程序正在运行
任何想法,我是否缺少任何内容,也许我应该在Dockerfile中的某个地方添加root用户?
apache2.conf
)不会引起问题吗?如果不安装,错误会消失apache2.conf
吗?