【问题标题】:AWS Beanstalk Laravel post deploy hooks no such file or directoryAWS Beanstalk Laravel 部署后挂钩没有这样的文件或目录
【发布时间】:2021-05-08 19:53:23
【问题描述】:

我正在尝试将 laravel 应用程序部署到 aws beanstalk,操作系统是 Amazon Linux 2 AMI。

我已经设置了以下文件:

.ebextensions/01-deploy-script-permission.config

它包含以下代码:

container_commands:
    01-storage-link:
        command: 'sudo chmod +x .platform/hooks/postdeploy/post-deploy.sh'     

.platform\hooks\postdeploy/01-post-deploy.sh

它包含以下代码:

php artisan optimize:clear

部署失败并在 eb-engine.log 文件中出现以下条目

[ERROR] 执行命令 [app-deploy] 时出错 - [RunAppDeployPostDeployHooks]。停止运行命令。错误: 命令 .platform/hooks/postdeploy/post-deploy.sh 失败并出现错误 fork/exec .platform/hooks/postdeploy/post-deploy.sh:没有这样的文件或 目录

【问题讨论】:

    标签: laravel amazon-elastic-beanstalk


    【解决方案1】:

    此答案适用于使用 Windows 将文件部署到弹性 beanstalk 的用户。

    我花了 6 个小时宝贵的时间找到了这个信息。可能没有在官方文档中的任何地方记录

    根据此链接“https://forums.aws.amazon.com/thread.jspa?threadID=321653

    psss:最重要的是文件用LF行分隔符保存。 CRLF 使“找不到文件或目录”

    所以我使用 Visual Studio Code 将 .platform/hooks/postdeploy 中的文件的 CRLF 转换为 LF

    在 VS Code 屏幕的右下方有一个小按钮 上面写着“LF”或“CRLF”:单击该按钮并将其更改为您的 偏好。

    【讨论】:

      【解决方案2】:

      我不确定,但我认为您甚至在创建文件之前就运行了该命令,因此出现以下错误。

      不久前,我遇到了同样的问题,我在 .ebextension 中编写了迁移命令,它曾经给我一个错误,因为我的 env 文件甚至还没有创建,因此没有建立数据库连接,所以我得到了错误。希望这会给你一个方向。 顺便说一句,我通过创建 env 然后通过管道推送这些命令来解决了这个问题。

      【讨论】:

      猜你喜欢
      • 2017-10-11
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 2013-03-31
      • 1970-01-01
      • 2021-09-26
      相关资源
      最近更新 更多