Saya sedang membangun gambar Docker untuk Symfony
aplikasi 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 -a
dan 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
?