【问题标题】:Composer Environment variable missing on CodeDeploy ApplicationCodeDeploy 应用程序上缺少 Composer 环境变量
【发布时间】:2017-07-28 09:50:04
【问题描述】:

我正在将 AWS Auto Scaling GroupCode Deploy 集成。

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

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

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

[运行时异常]

必须设置 HOME 或 COMPOSER_HOME 环境变量,composer 才能正确运行

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

我该如何解决这个问题?有人解决过这个问题吗?

任何答案将不胜感激。感谢您的宝贵时间。

【问题讨论】:

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


    【解决方案1】:

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

    您也应该能够在CodeDeploy 中实现这一点,例如在创建应用程序时。

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

    【讨论】:

    • @jesuisgenial 不客气 :) 记得将我设为回答者(如果已修复):) 注意:我又添加了一张截图
    • 感谢它的工作!而且我找到了一种更简单的方法,它只是运行带有 ENV 变量的作曲家。像这样 COMPOSER_HOME=$COMPOSER_HOME composer install --no-interaction --no-dev --optimize-autoloader
    • 哦,太好了!很高兴帮助 :D :D :D
    【解决方案2】:

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

    【讨论】:

    • 哦,我什至不知道我可以指定哪个用户来运行挂钩脚本。谢谢你:)
    【解决方案3】:

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

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

    使用包信息加载作曲家存储库 从锁定文件安装依赖项(包括 require-dev) 无需安装或更新 生成优化的自动加载文件 用户@服务器:~/httpdocs$

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

    【讨论】:

      猜你喜欢
      • 2018-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-05
      • 2015-04-15
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      相关资源
      最近更新 更多