私は、マルチライセンスのElastic Beanstalk構成にLaravelアプリケーションを配備しています。アプリケーションコードはzipファイルにパッケージ化され、展開の一環としてアップロードされ、PHP-FPM Dockerコンテナにマウントされます。コンテナは正しく実行され、コードはマウントされますが、マウントされたすべてのディレクトリはroot
によって所有されているため、アプリケーションはこれらのディレクトリに書き込むことができません(ログファイル、フレームワークファイルなどに必要です)。私はその後、docker exec -it container_id bash
を実行し、私はすべてのファイル/ディレクトリがrootによって所有されて見ることができますls -la
を実行して、私は手動でSSH場合EC2インスタンス上www-data
AWS Elastic Beanstalkは、マウントされたディレクトリのパーミッションを変更します。
によって所有されるようにそれらを必要とします。 chown -R www-data: storage vendor
を実行すると、アプリケーションは正常に動作します。
したがって、の中にあるのphp-fpmコンテナの権限を変更する方法を見つける必要があります。
私は.ebextensions/permissions.config
container_commands:
01_change_storage_permissions:
# Get the php fpm container ID and change permissions on the mounted directories
command: sudo docker exec $(sudo docker ps -aqf "name=php-fpm") chown -R www-data:www-data storage vendor bootstrap
を次のコマンドを試してみました展開が成功したので、私は正常に実行されたコマンドを取ることができるが、残念ながら、コンテナへのログイン時にようにパーミッションを変更していないようですディレクトリはまだルートによって所有されています