Tworzę obraz Dockera dla mojej Symfony
aplikacji i muszę zezwolić serwerowi Apache na zapisywanie w folderach pamięci podręcznej i dzienników
#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
Kiedy buduję ten obraz docker build -t myname/symfony_apps:latest .
i uruchamiam kontener za pomocą docker run -p 8080:80 myname/symfony_apps:latest
. Dziennik Apache jest zalany błędami odmowy uprawnień, dziwna rzecz, którą sprawdziłem ls -a
i uprawnienia są w porządku. a kiedy uruchamiam chmod z bash kontenera, problemy z uprawnieniami do apache znikają, a aplikacja działa dobrze
Sytuacja
Uruchamianie komend chmod z pliku dockerfile: uprawnienia są zmieniane, ale Apache wciąż narzeka na odmowę dostępu . Uruchamianie chmod tych samych poleceń z bash wewnątrz kontenera: uprawnienia są zmieniane i moja aplikacja jest uruchomiona
Każdy pomysł, czy coś mi brakuje, może powinienem dodać użytkownika root gdzieś w Dockerfile?
apache2.conf
) nie powoduje problemu? Czy błędy znikną, jeśli nie zostaną zainstalowane apache2.conf
?