我有一个具有Composer依赖项的应用程序,我想将其部署到Elastic Beanstalk容器中。但是,我的composer.json文件不在项目的根文件夹中。我的项目根目录具有以下结构:
- .ebextensions
- scripts
- www (Webroot)
- composer.json
并且我在容器配置选项中将文档根目录设置为/www。问题是我需要在包装盒上安装composer并运行composer安装脚本以添加项目依赖项。我知道在部署期间,EB会检查项目根目录中是否有composer.json文件并安装Composer,但在这种情况下,我的composer.json文件位于子目录中。
我认为可以在部署应用程序后使用.ebextenstions添加命令来安装Composer和依赖项。我使用以下容器命令创建了文件.ebextensions/01-composer.config:
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/"
但是我的应用程序不会使用此配置进行部署。希望能得到一些帮助,以了解我要去哪里出错了。
谢谢。
最佳答案
Beanstalk的PHP AMI中已经默认安装了Composer。
还要考虑container_commands是通过'/var/app/ondeck'运行的,而不是当前版本的。尝试这样的事情:
container_commands:
01-install-packages:
command: "composer.phar install -d /var/app/ondeck/www"
关于amazon-web-services - AWS Elastic Beanstalk和Composer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17521843/