提问者:小点点

AWS Beanstalk Laravel后部署钩子没有这样的文件或目录


我正在尝试将laravel应用部署到aws beanstalk,OS是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文件

[错误]执行命令[app-部署]-[RunAppDeployPostDeployHooks]时出错。停止运行命令。错误:命令.平台/钩子/后部署/post-deploy.sh 失败,错误为fork/exec.平台/钩子/后部署/post-deploy.sh:没有这样的文件或目录


共2个答案

匿名用户

这个答案适用于使用Windows将文件部署到弹性豆茎的用户。

我花了宝贵的6个小时才找到这个信息。可能在任何官方文件中都没有记载

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

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

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

在VS代码的屏幕右下角有一个小按钮,上面写着“LF”或“CRLF”:点击那个按钮,然后根据你的喜好进行更改。

匿名用户

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

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