【问题标题】:Laravel on AWS ElasticBeanstalk: running artisan migration command on deployment using .ebextensions in failingAWS ElasticBeanstalk 上的 Laravel:在使用 .ebextensions 部署失败时运行工匠迁移命令
【发布时间】:2020-11-02 14:49:51
【问题描述】:

我正在将 Laravel 应用程序部署到 ElasticBeanstalk。我在部署时使用 .ebextensions 配置运行迁移命令。

我在项目根文件夹下创建了一个 .extensions/01-migration.config 文件,内容如下。

container_commands:
  01_cd_html:
    command: "cd /var/www/html"
  02_php_artisan_migrate:
    command: "php artisan migrate --force"

然后我通过运行以下命令来部署我的应用程序。

eb deploy

然后我得到以下错误。

2020-07-13 11:51:59    INFO    Environment update is starting.      
2020-07-13 11:52:39    INFO    Deploying new version to instance(s).
2020-07-13 11:52:49    ERROR   [Instance: i-0a461ffb24bc26f52] Command failed on instance. An unexpected error has occurred [ErrorCode: 0000000001].
2020-07-13 11:52:49    INFO    Command execution completed on all instances. Summary: [Successful: 0, Failed: 1].
2020-07-13 11:52:49    ERROR   Unsuccessful command execution on instance id(s) 'i-0a461ffb24bc26f52'. Aborting the operation.
2020-07-13 11:52:50    ERROR   Failed to deploy application.  

我可以通过 SSH 连接到服务器并成功运行命令。但它只是不适用于部署。我的配置有什么问题,我该如何解决?

【问题讨论】:

  • 您能否检查 EB 日志以找到更详细的错误消息?
  • 您能否尝试将一个简单的单页 PHP 应用程序部署到 EBS 中。查看 Laravel 应用程序和演示 PHP 应用程序的 PHP 版本是否相同。另请查看 EBS 是否支持此版本。如果不支持 PHP 版本,则必须对其进行 Dockerize 并进行部署
  • 嗨,我发现了问题。我需要在选项设置中设置命令所需的环境变量。这很奇怪。它也应该从 Beanstalk 环境控制台中获取。

标签: laravel amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

我解决了这个问题。我需要在option_settings中设置命令所需的环境变量。我尝试运行的命令是迁移命令,它使用数据库凭据。所以我为数据库指定了环境变量。这很奇怪,它应该只适用于 ElasticBeanstalk 控制台中指定的那些。

【讨论】:

  • 您能分享如何将环境变量添加到 .ebextensions 文件中吗?
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 2016-04-06
  • 2017-12-12
  • 2018-09-25
  • 2013-02-05
  • 2021-07-16
  • 2020-01-22
  • 2013-07-24
相关资源
最近更新 更多