首页 > 解决方案 > 为什么 ebextensions 被忽略

问题描述

我遇到了 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文件夹和配置文件似乎被忽略了。

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

标签: laraveldevopsamazon-elastic-beanstalk

解决方案


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

或者,您也可以git add通过执行eb create/deploy --staged.


推荐阅读