Je crée une image Docker pour mon Symfony
application et je dois autoriser le serveur Apache à écrire dans les dossiers de cache et de journal
#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
Lorsque je crée cette image avec docker build -t myname/symfony_apps:latest .
et exécute le conteneur avec docker run -p 8080:80 myname/symfony_apps:latest
. Le journal Apache est inondé d'erreurs d'autorisation refusée, la chose étrange avec laquelle j'ai vérifié ls -a
et les autorisations sont très bien. et quand j'exécute chmod depuis bash du conteneur, les problèmes d'autorisation apache ont disparu et l'application fonctionne bien
La situation
Exécution des commandes chmod à partir de dockerfile: les autorisations sont modifiées mais apache se plaint toujours de l'autorisation refusée. Exécution de mêmes commandes chmod avec bash à l'intérieur du conteneur: les autorisations sont modifiées et mon application est en cours d'exécution
Une idée, est-ce que je manque quelque chose, peut-être devrais-je ajouter un utilisateur root quelque part dans le Dockerfile?
apache2.conf
) ne pose pas de problème? Les erreurs disparaissent-elles si vous n'installez pas apache2.conf
?