我正在为我的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 用户?