Я будую зображення 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 з баш-файлу контейнера, проблеми з дозволом apache зникають, і додаток працює добре
Ситуація
Запуск команд chmod з dockerfile: дозволи змінюються, але apache все ще скаржиться на відмову в дозволі. Запускаються однакові команди chmod з bash всередині контейнера: дозволи змінюються, і моя програма працює
Будь-яка ідея, чи мені щось не вистачає, можливо, я повинен додати root користувача десь у Dockerfile?
apache2.conf
) не викликає проблем? Чи помиляються помилки, якщо ви не встановлюєте apache2.conf
?