Ho un'applicazione con dipendenze di Composer che voglio distribuire in un contenitore di Beanstalk Elastic. Tuttavia il mio file composer.json non si trova nella cartella principale del progetto. La mia radice del progetto ha la seguente struttura:AWS Elastic Beanstalk and Composer
- .ebextensions
- scripts
- www (Webroot)
- composer.json
E ho impostato la radice del documento a/www nelle opzioni di configurazione del contenitore. Il problema è che ho bisogno di installare compositore sulla scatola ed eseguire lo script di installazione del compositore per aggiungere le dipendenze del progetto. Capisco che durante una deploy EB controllerà se c'è un file composer.json nella root del progetto e installer Composer ma in questo caso il mio file composer.json si trova in una sottodirectory.
Ho pensato che potrebbe usare .ebextenstions per aggiungere comandi per installare Composer e dipendenze dopo che l'applicazione è stata distribuita. Ho creato un file di .ebextensions/01-composer.config con i seguenti comandi container:
container_commands:
01-install-composer:
command: "curl -sS https://getcomposer.org/installer | php"
02-install-packages:
command: "php composer.phar install"
cwd: "/var/app/current/www/"
Ma la mia applicazione non distribuire con questa configurazione. Gradirei qualche aiuto per vedere dove sto andando male.
Grazie.
Hai provato a spostare composer.json nella radice del progetto e distribuirlo? – tbjers
Un test rapido e questo sembra aver funzionato. Grazie. Non sono sicuro del motivo per cui non ci ho pensato, sembra ovvio ora. –
Ho avuto un problema in qualche modo correlato. È importante notare che è necessario creare la cartella .ebextensions-- non utilizzare la cartella .elasticbeanstalk esistente. – Acyra