Ich stelle eine Laravel-Anwendung für eine Elastic Beanstalk-Konfiguration mit mehreren Containern bereit. Der Anwendungscode wird in eine Zip-Datei gepackt und als Teil der Bereitstellung hochgeladen und dann in den PHP-FPM Docker-Container eingebunden. Die Container werden ordnungsgemäß ausgeführt, und der Code wird gemountet. Alle bereitgestellten Verzeichnisse gehören jedoch root
und daher kann die Anwendung nicht in diese Verzeichnisse schreiben (erforderlich für Protokolldateien, Framework-Dateien usw.). Ich brauche sie durch www-data
AWS Elastic Beanstalk Ändern von Berechtigungen für ein eingehängtes Verzeichnis
besessen werden, wenn ich manuell SSH auf dem die EC2-Instanz, dann docker exec -it container_id bash
laufen und laufen ls -la
ich sehen kann alle Dateien/Verzeichnisse root gehören. Wenn ich chown -R www-data: storage vendor
ausführen, funktioniert die Anwendung wie erwartet.
Daher muss ich einen Weg finden, um die Berechtigungen für die gemounteten Verzeichnisse innerhalb der php-fpm Container zu ändern.
Ich habe in .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
Der Einsatz des folgenden Befehls versucht, erfolgreich ist, so kann ich den Befehl erfolgreich ausgeführt nehmen, aber es scheint leider nicht die Berechtigungen wie beim Einloggen in den Behälter zu ändern, die Verzeichnisse sind immer noch im Besitz von root