Saya sedang membangun gambar Docker untuk Symfonyaplikasi saya dan saya perlu memberikan izin kepada server apache untuk menulis ke folder cache dan log
#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
Ketika saya membangun gambar ini dengan docker build -t myname/symfony_apps:latest .dan menjalankan wadah dengan docker run -p 8080:80 myname/symfony_apps:latest. Log Apache dibanjiri oleh kesalahan izin ditolak, hal aneh yang saya periksa ls -adan izin baik-baik saja. dan ketika saya menjalankan chmod dari bash kontainer, masalah izin apache hilang dan aplikasi berfungsi dengan baik
Situasi
Menjalankan perintah chmod dari dockerfile: izin diubah tetapi apache masih mengeluh tentang izin yang ditolak. Menjalankan perintah chmod yang sama dengan bash di dalam wadah: izin diubah dan aplikasi saya sedang berjalan
Gagasan, Apakah saya kehilangan sesuatu, mungkin saya harus menambahkan pengguna root di suatu tempat di Dockerfile?
apache2.conf) tidak menyebabkan masalah? Apakah kesalahan hilang jika Anda tidak menginstal apache2.conf?