Ich erstelle ein Docker-Image für meine Symfony
App und muss dem Apache-Server die Berechtigung zum Schreiben in Cache- und Protokollordner erteilen
#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
Wenn ich dieses Image mit erstelle docker build -t myname/symfony_apps:latest .
und den Container mit ausführe docker run -p 8080:80 myname/symfony_apps:latest
. Das Apache-Protokoll wird von Fehlern überflutet, denen die Berechtigung verweigert wurde. Das Seltsame, mit dem ich nachgefragt habe, ls -a
und die Berechtigungen sind in Ordnung. und wenn ich chmod von Containers Bash aus starte, sind Probleme mit der Apache-Berechtigung verschwunden und die App funktioniert gut
Die Situation
Ausführen von chmod-Befehlen aus der Docker-Datei: Berechtigungen werden geändert, aber Apache beschwert sich weiterhin über verweigerte Berechtigungen. Ausführen von chmod gleichen Befehlen mit bash im Container: Berechtigungen werden geändert und meine App wird ausgeführt
Irgendeine Idee, vermisse ich etwas, vielleicht sollte ich irgendwo in der Docker-Datei Root-Benutzer hinzufügen?
apache2.conf
) kein Problem verursacht? Verschwinden die Fehler, wenn Sie nicht installieren apache2.conf
?