Tôi đang xây dựng hình ảnh Docker cho Symfony
ứng dụng của mình và tôi cần cấp phép cho máy chủ apache để ghi vào thư mục bộ đệm và nhật ký
#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
Khi tôi xây dựng hình ảnh này với docker build -t myname/symfony_apps:latest .
và chạy container với docker run -p 8080:80 myname/symfony_apps:latest
. Nhật ký Apache bị ngập bởi lỗi từ chối cấp phép, điều lạ mà tôi đã kiểm tra ls -a
và quyền là ổn. và khi tôi chạy chmod từ bash của người dùng, các vấn đề về quyền apache không còn nữa và ứng dụng hoạt động tốt
Tình huống
Chạy các lệnh chmod từ dockerfile: quyền được thay đổi nhưng apache vẫn phàn nàn về quyền bị từ chối. Chạy các lệnh tương tự chmod với bash bên trong container: quyền được thay đổi và ứng dụng của tôi đang chạy
Bất cứ ý tưởng nào, tôi có thiếu thứ gì không, có lẽ tôi nên thêm người dùng root ở đâu đó trong Dockerfile?
apache2.conf
) của bạn không gây ra sự cố không? Các lỗi sẽ biến mất nếu bạn không cài đặt apache2.conf
?