我创建了一个PHP脚本,该脚本使用所需的数据库设置和凭据为Magento生成local.xml文件。我需要在部署应用程序后运行它;但我似乎无法找到一种方法。我的理解是我需要在.config
目录中创建一个.ebextensions
文件。有人有解决方案吗?
答案 0 :(得分:8)
技术上Josh不正确。根据文档(http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-commands):命令部分.."命令按名称按字母顺序处理,并在设置应用程序和Web服务器并提取应用程序版本文件之前运行"
我最了解的是" container_commands" " container_commands中的命令按名称按字母顺序处理。它们在应用程序和Web服务器设置完毕后运行应用程序版本文件,但在部署应用程序版本之前运行。"
我不知道如何在部署后真正运行脚本(这就是为什么我在这里寻找答案)。
答案 1 :(得分:6)
Elastic Beanstalk会查看 / opt / elasticbeanstalk / hooks / appdeploy / post 目录下的文件,以便在部署后运行。
所以你可以利用这个并做:
commands: create_post_dir: command: "mkdir /opt/elasticbeanstalk/hooks/appdeploy/post" ignoreErrors: true files: "/opt/elasticbeanstalk/hooks/appdeploy/post/job_after_deploy.sh": mode: "000755" owner: root group: root content: | #!/usr/bin/env bash /var/app/current ** run your php script here **
答案 2 :(得分:-3)
是的,.ebextensions
正是您要找的。要了解如何捆绑源代码,请查看sample applications。你也可以看一下PHP。
有关.ebextensions
的更多信息,请查看this page。
以下是自定义命令的示例。这可以放在sample.config
目录中名为.ebextensions
的文件中:
commands:
success_command:
command: echo "this will be ran after launching"
如果您复制并粘贴YAML并仔细检查格式,请务必小心。您也可以使用遵循类似格式的JSON。