为啥 ebextensions 被忽略

Posted

技术标签:

【中文标题】为啥 ebextensions 被忽略【英文标题】:Why are ebextensions are getting ignored为什么 ebextensions 被忽略 【发布时间】:2019-03-22 08:09:21 【问题描述】:

我遇到了 laravel 和 Elastic Beanstalk 的问题。 我想将一个 laravel 项目部署到 aws eb 并设置一些 vpc 和其他东西。

所以在我的laravel-app 文件夹中,我创建了一个.ebextensions 文件夹和两个配置文件01setup.config03deploy.config

我的setup.config 看起来像这样:

option_settings:
  aws:elasticbeanstalk:container:php:phpini:
    document_root: /public
    composer_options: --no-dev --no-interaction --prefer-dist --optimize-autoloader

  aws:elasticbeanstalk:application:environment:
    APP_ENV: production
    APP_KEY: CATZ
    DB_HOST: CATZ
    DB_DATABASE: CATZ
    DB_USERNAME: CATZ

这里没什么花哨的,只是设置文档根目录和作曲家选项。因为部署总是因为 laravel 黄昏而失败。 (它抛出了一个期望,它不会保存在生产中使用它)

然后我跑一次

eb init

然后

eb create --vpc.id CATS--vpc.elbpublic --vpc.elbsubnets CATS --vpc.ec2subnets CATZ --vpc.securitygroups CATZ

为 ec 和 elb 实例创建 eb 并设置 vpc。

但是部署失败,因为 laravel 黄昏包。挖掘日志,显示eb 没有占用options_settings 并且composer_options 是空的。

我检查了Configuration - Software - Modify 下的控制台仪表板,并设置了文档根目录和环境变量。

所以不知何故 .ebextensions 文件夹和配置文件似乎被忽略了。

我也终止并重新创建了堆栈,但结果相同。

【问题讨论】:

如果您的目录受版本控制,eb 将使用 HEAD 创建一个 zip 文件。 .ebextensions/ 在 VC 中吗? 谢谢@progfan!是的,该目录受版本控制。并且 .ebextension 没有提交。 太棒了。很高兴你让它工作。 【参考方案1】:

如果您的目录受版本控制,eb create/eb deploy 将使用HEAD 来创建一个 zip 文件。 .ebextensions/ 在 VC 中吗?如果没有,则需要提交。

或者,您还可以通过执行 eb create/deploy --staged 来部署分阶段 (git add-ed) 更改而不是已提交更改。

【讨论】:

以上是关于为啥 ebextensions 被忽略的主要内容,如果未能解决你的问题,请参考以下文章

Beanstalk 部署忽略了我在 .ebextensions 中的 nginx 配置文件

尝试通过弹性 beantalk 运行救援时忽略 .ebextensions 文件

通过 .ebextensions 升级 pip

为啥过滤统计信息被忽略

为啥某些 Where 子句被忽略?

为啥我的 IDocHostUIHandler 实现被忽略