CodeDeploy应用程序

时间:2017-07-28 09:50:04

标签: amazon-web-services composer-php aws-code-deploy

我将 AWS Auto Scaling Group 代码部署集成。

我为AfterInstall挂钩写了一个bash脚本。

该脚本执行 composer update composer dump-autoload ,因为我的代码使用的是PHP。

这就是问题所在。 部署时,部署失败并显示此日志。

  

[RuntimeException]

     

必须为作曲家设置HOME或COMPOSER_HOME环境变量才能正确运行

但是当我通过SSH访问实例并运行composer时,它运行正常。

如何解决此问题?有人解决了这个问题吗?

任何答案都将不胜感激。谢谢你的时间。

3 个答案:

答案 0 :(得分:1)

我在使用Elastic Beanstalk时遇到了类似的问题,我确实添加了Environment variable

enter image description here

enter image description here

您应该能够在CodeDeploy中实现此目的,例如创建应用程序。

enter image description here

另见https://github.com/composer/composer/issues/4789

答案 1 :(得分:1)

您是否可以确保在您运行钩子脚本的appspec文件中指定的用户也可以访问env变量?如果您在实例上运行多个用户,则每个用户可能无法访问env变量,具体取决于您的设置方式。

答案 2 :(得分:0)

对于使用CodeDeploy安装作曲家,我也有同样的担忧。它在开发中运行良好,但是当我在生产中运行它时,我得到: [stderr] [RuntimeException] [stderr]必须设置HOME或COMPOSER_HOME环境变量,才能使composer正确运行 我通过SSH实例化并运行作曲家,然后得到:

user@server:~/httpdocs$ /opt/plesk/php/7.2/bin/php /usr/lib/plesk-9.0/composer.phar install

使用软件包信息加载composer存储库 从锁定文件安装依赖项(包括require-dev) 无需安装或更新 生成优化的自动加载文件 user @ server:〜/ httpdocs $

我有一个ec2实例,并且在stg和prod的两个单独目录中进行部署。 codedeploy deployment error