Symfony
Uygulamam için bir Docker görüntüsü oluşturuyorum ve önbellek ve günlük klasörlerine yazmak için apache sunucusuna izin vermem gerekiyor
#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
Bu resmi ile docker build -t myname/symfony_apps:latest .
oluşturup kapsayıcıyı çalıştırdığımda docker run -p 8080:80 myname/symfony_apps:latest
. Apache günlüğü, izin reddedilen hatalar, kontrol ettiğim garip şey ls -a
ve izinler iyi durumda. ve chmod'u kabın bash'ından çalıştırdığımda, apache izni sorunları gitti ve uygulama iyi çalışıyor
Durum
Dockerfile'dan chmod komutlarını çalıştırma: izinler değiştirildi, ancak apache hala izin verilmediğinden şikayet ediyor. Kapsayıcı içinde bash ile chmod aynı komutları çalıştırma: izinler değiştirildi ve uygulamam çalışıyor
Herhangi bir fikir, bir şey eksik mi, belki Dockerfile bir yere kök kullanıcı eklemek gerekir?
apache2.conf
) bir soruna neden olmadığından emin misiniz ? Yüklemezseniz hatalar ortadan kalkar apache2.conf
mı?