내 Symfony
앱 의 Docker 이미지를 작성 중이며 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
과 확인한 권한이 있습니다. 컨테이너의 bash에서 chmod를 실행하면 아파치 권한 문제가 사라지고 앱이 잘 작동합니다.
그 상황
dockerfile에서 chmod 명령 실행 : 권한이 변경되었지만 Apache는 여전히 권한 거부에 대해 불평합니다. 컨테이너 내에서 bash를 사용하여 chmod와 동일한 명령 실행 : 권한이 변경되고 내 앱이 실행 중
어떤 아이디어, 내가 뭔가를 놓치고 있습니까, 어쩌면 Dockerfile 어딘가에 루트 사용자를 추가해야합니까?
apache2.conf
)으로 인해 문제가 발생하지 않았습니까? 설치하지 않으면 오류가 사라 apache2.conf
집니까?