gpt4 book ai didi

amazon-web-services - Elastic BeanStalk 应用程序部署后 Hook 未执行我的命令

转载 作者:行者123 更新时间:2023-12-03 15:27:23 25 4
gpt4 key购买 nike

我最近能够在 Elastic Beanstalk 上使用 codepipeline 部署我的 Laravel 应用程序,但遇到了问题。我注意到我的路由由于 php.conf Nginx 配置而失败。我必须在 EB 的 nginx php.conf 文件中添加几行代码才能使其正常工作。
我现在的问题是,在每次部署之后,我修改 php.conf 文件的应用程序实例都被销毁并重新创建。我想要一种在每次成功部署后动态更新文件的方法。我有一个我想用我的应用程序版本化的文件版本,所以想在部署后创建一个指向该文件的符号链接(symbolic link)。
经过大量研究后,我偶然发现了 appDeploy Hooks on Elastic Beanstalk,它在部署后运行后脚本,所以这样做了

files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/91_post_deploy_script.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
sudo mkdir /var/testing1
sudo ln -sfn /var/www/html/php.conf.example /etc/nginx/conf.d/elasticbeanstalk/php.conf
sudo mkdir /var/testing
sudo nginx -s reload
由于某种原因,这不起作用。未创建符号链接(symbolic link),因此我的路线仍然无法正常工作..
我什至添加了一些 mkdir 以确保该脚本中的命令运行,这些命令都没有运行,因为没有创建这些目录。
请注意,如果我 ssh 进入 ec2 实例并在那里运行命令,它就可以工作。该 bash 脚本也存在于 post 目录中,如果我在服务器上手动运行它也可以工作。
任何有关如何解决此问题的指示都会有所帮助。也许我也做错了什么。
现在我已经按照 this 运行了我的脚本。 .但是,脚本没有运行。我收到一个错误
2020/06/28 08:22:13.653339 [INFO] Following platform hooks will be executed in order: [01_myconf.config]
2020/06/28 08:22:13.653344 [INFO] Running platform hook: .platform/hooks/postdeploy/01_myconf.config
2020/06/28 08:22:13.653516 [ERROR] An error occurred during execution of command [app-deploy] - [RunPostDeployHooks]. Stop running the command. Error: Command .platform/hooks/postdeploy/01_myconf.config failed with error fork/exec .platform/hooks/postdeploy/01_myconf.config: permission denied
我试着关注这个论坛帖子 here通过向我的容器命令添加一个新命令来使我的文件可执行,如下所示:
01_chmod1:
command: "chmod +x .platform/hooks/postdeploy/91_post_deploy_script.sh"
我仍然遇到同样的问题。没有权限

最佳答案

可悲的是,您所描述的钩子(Hook)(即 /opt/elasticbeanstalk/hooks/appdeploy )适用于 亚马逊 Linux 1 .
由于您使用的是 亚马逊 Linux 2 ,正如评论中所阐明的,您尝试使用的钩子(Hook)不适用。因此他们是未执行 .
在 Amazon Linux 2 中,有新的 Hook ,如 here 所述。他们是:

prebuild – Files here run after the Elastic Beanstalk platform engine downloads and extracts the application source bundle, and before it sets up and configures the application and web server.


predeploy – Files here run after the Elastic Beanstalk platform engine sets up and configures the application and web server, and before it deploys them to their final runtime location.


postdeploy – Files here run after the Elastic Beanstalk platform engine deploys the application and proxy server.


这些新钩子(Hook)的使用是 不同比在 Amazon Linux 1 中。因此,您必须返回到 Amazon Linux 1 或将您的应用程序迁移到 Amazon Linux 2。
一般 迁移步骤描述了从 EB 中的 Amazon Linux 1 到 Amazon Linux 2 here

关于amazon-web-services - Elastic BeanStalk 应用程序部署后 Hook 未执行我的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62610843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com