Я создаю образ Docker для своего Symfony
приложения, и мне нужно дать разрешение серверу 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
и разрешения в порядке. и когда я запускаю chmod из контейнера bash, проблемы с разрешением apache исчезают, и приложение работает хорошо
Ситуация
Выполнение команд chmod из dockerfile: разрешения изменены, но apache по-прежнему жалуется на отказ в доступе . Выполнение одних и тех же команд chmod с bash внутри контейнера: разрешения изменены, и мое приложение работает
Любая идея, я что-то упустил, может быть, я должен добавить пользователя root где-нибудь в Dockerfile?
apache2.conf
) не вызывает проблемы? Уходят ли ошибки, если вы не устанавливаете apache2.conf
?