I'm building a Docker image for my Symfony
app and I need to give permission to apache server to write into cache and log folders
#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
When I build this image with docker build -t myname/symfony_apps:latest .
and run the container with docker run -p 8080:80 myname/symfony_apps:latest
.
Apache log is flooded by permission denied errors , the strange thing that I've checked with ls -a
and permissions are fine. and when I run chmod from container's bash , apache permission issues are gone and the app works well
The situation
Running chmod commands from dockerfile: permissions are changed but apache still complains about permission denied. Running chmod same commands with bash inside the container: permissions are changed and my app is running
Any idea , Am I missing something, maybe I should add root user somewhere in the Dockerfile ?