小编Ome*_*uno的帖子

Elastic BeanStalk 应用程序部署后挂钩未执行我的命令

我最近能够在 Elastic Beanstalk 上使用代码管道部署我的 Laravel 应用程序,但遇到了问题。我注意到我的路由由于 php.conf Nginx 配置而失败。我必须向 EB 的 nginx php.conf 文件添加几行代码才能使其工作。

我现在的问题是,每次部署后,我修改 php.conf 文件的应用程序实例都被销毁并重新创建。我想要一种在每次成功部署后动态更新文件的方法。我有一个文件版本,我想用我的应用程序进行版本控制,因此想在部署后创建一个指向该文件的符号链接。

经过大量研究,我偶然发现了 Elastic Beanstalk 上的 appDeploy Hooks,它在部署后运行发布脚本,所以这样做了

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
Run Code Online (Sandbox Code Playgroud)

这由于某种原因不起作用。符号链接未创建,因此我的路线仍然无法正常工作..

我什至添加了一些 mkdir 以确保该脚本中的命令运行,这些命令都没有运行,因为没有创建这些目录。

请注意,如果我通过 ssh 进入 ec2 实例并在那里运行命令,它会起作用。该 bash 脚本也存在于 post 目录中,如果我在服务器上手动运行它,它也能工作。

任何有关我如何解决此问题的指示都会有所帮助。也许我也做错了什么。

现在我已经按照这个来运行我的脚本。但是,脚本没有运行。我收到一个错误

2020/06/28 08:22:13.653339 [INFO] Following platform hooks will be executed in order: [01_myconf.config]
2020/06/28 …
Run Code Online (Sandbox Code Playgroud)

continuous-integration amazon-web-services continuous-deployment amazon-elastic-beanstalk devops

6
推荐指数
1
解决办法
4483
查看次数