部署AWS Beanstalk后执行命令

sia*_*olt 9 deployment amazon-web-services node.js npm amazon-elastic-beanstalk

我有部署后执行命令的问题,我有一些node.js项目和脚本,这个脚本使用来自node_modules的一些bin,如果我在.ebextensions/.config中编写我的脚本命令,他在npm install之前执行并返回error("node_modules/.bin/some": No such file or directory) .如何在部署后执行命令.谢谢.

sia*_*olt 14

我找到了以下解决方案

我添加到beanstalk config next命令:

commands:
  create_post_dir:
    command: "mkdir /opt/elasticbeanstalk/hooks/appdeploy/post"
    ignoreErrors: true
files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/some_job.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      cd /var/app/current
      export PATH=$PATH:$(ls -td /opt/elasticbeanstalk/node-install/node-* | head -1)/bin
      npm run some_script
Run Code Online (Sandbox Code Playgroud)

此命令为post-hooks脚本创建(如果不存在)文件夹并添加bash脚本.此文件夹中的脚本仅在安装npm后执行,这对我的问题非常重要.

感谢这个家伙http://junkheap.net/blog/2013/05/20/elastic-beanstalk-post-deployment-scripts/

  • 非常感谢.我在PHP脚本中遇到了同样的问题.它就像一个魅力. (2认同)