【AWS / Laravel】The stream or file "/var/www/html/storage/logs/laravel.log" could not be opened in append mode: failed to open stream: Permission denied

◆問題

ECSのFargateでLaravelのプロジェクトを立ち上げた時に掲題のエラーが発生。storageのフォルダはDockerfileで以下の通り権限変更しており、同じDockerイメージでローカルで立ち上げた時は何事もなく動くのになぜ??

RUN chmod -R 775 storage

◆原因

色々試してみて分かったのだが、どうやらルートからの絶対パスで書かないとダメだったのと、AWS環境の場合はフォルダの所有者も「www-data」に変更する必要がある模様。

◆解決方法

自分のケースの場合は「/var/www/html」配下にLaravelのプロジェクトソースを展開しているので、以下のような形でDockerfile内の権限部分を変更するとうまくいった。

RUN chmod -R 775 /var/www/html/storage && \
         chown -R www-data:www-data /var/www/html/storage