amazon-web-services - AWS Elastic Beanstalk和Composer

标签 amazon-web-services amazon-ec2 composer-php amazon-elastic-beanstalk

我有一个具有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/

相关文章:

java - Dynamo DB 中的自动递增计数器

amazon-ec2 - 带 Socks 代理的 JMeter?

macos - 尝试 self 更新 Composer 时出错

java - 使用 Cassandra Java 驱动程序玩 2.x - 错误 com.datastax.driver.core.Session - 创建 xxx.xx 池时出错,但返回响应

amazon-web-services - 如何将ec2实例连接到域名

php - composer install --prefer-source 抛出错误

php - 具有 PSR-4 自动加载功能的 Composer : classes from namespace not loading

postgresql - 在使用 psql 在本地下载/保存之前,在 AWS 实例上将表 gzip 转换为 csv

amazon-web-services - 如何在同一个CloudFormation模板中声明多个相似的资源组?

amazon-web-services - 允许VPC中的Lambda访问同一VPC中的Elasticsearch域