Estoy creando una imagen de Docker para mi Symfony
aplicación y necesito dar permiso al servidor apache para escribir en la caché y las carpetas de registro
#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
Cuando construyo esta imagen con docker build -t myname/symfony_apps:latest .
y ejecuto el contenedor con docker run -p 8080:80 myname/symfony_apps:latest
. El registro de Apache está inundado por errores de permiso denegado, lo extraño con lo que he verificado ls -a
y los permisos están bien. y cuando ejecuto chmod desde bash del contenedor, los problemas de permisos de apache desaparecen y la aplicación funciona bien
La situación
Ejecución de comandos chmod desde dockerfile: los permisos se cambian, pero apache aún se queja por el permiso denegado. Ejecutando chmod mismos comandos con bash dentro del contenedor: los permisos se cambian y mi aplicación se está ejecutando
¿Alguna idea, me falta algo, tal vez debería agregar un usuario root en algún lugar del Dockerfile?
apache2.conf
) no está causando un problema? ¿Los errores desaparecen si no los instala apache2.conf
?