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を実行すると、Apacheの権限の問題がなくなり、アプリは正常に動作します
状況
dockerfileからのchmodコマンドの実行:権限は変更されましたが、Apacheは依然として権限の拒否について不満を述べています。 コンテナー内でbashを使用してchmodと同じコマンドを実行すると、権限が変更され、アプリが実行されます
任意のアイデア、何か不足していますか、Dockerfileのどこかにrootユーザーを追加する必要がありますか?
apache2.conf
)が問題を引き起こしていないことは確かですか?インストールしないとエラーは消えますapache2.conf
か?