.ebextensions删除preinit脚本

T. *_*xim 2 amazon-ec2 amazon-web-services amazon-elastic-beanstalk

目前正在部署我得到:

挂钩/opt/elasticbeanstalk/hooks/preinit/30directories.sh失败

我想完全使用.ebextensions删除钩子,我目前正在使用:

/.ebextensions/01-remove-unused.config

commands:
  removeunused:
    command: "rm -f /opt/elasticbeanstalk/hooks/preinit/30directories.sh"
    ignoreErrors: true

files:
  "/opt/elasticbeanstalk/hooks/preinit/30directories.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      ls
Run Code Online (Sandbox Code Playgroud)

rko*_*val 5

我不确定这是多么相关,但你使用的是ElasticBeanstalk的平台?对于64bit Amazon Linux 2016.09 v2.3.0 running Docker 1.11.2特定的(也许是其他平台),我不相信有任何方法可以按照您描述的方式执行此操作.

不幸的是,preinit脚本在ElasticBeanstalk注入.ebextensions您的环境之前执行得很好,并且它们仅在启动新实例时运行.要确认这一点,您可以检查/var/log/eb-activity.log新部署的ElasticBeanstalk实例,该实例向您显示AWS为您记录的引导过程相关的所有内容.搜索Initialization/PreInitStage0/PreInitHook在该日志文件,然后又搜索.ebextensions; 您将看到preinit脚本确实在大多数其他所有内容之前执行,.ebextensions文件来得更晚.(对于它的价值,这篇博文可能有助于进一步帮助了解哪些钩子在哪些时间运行)

什么,你可以潜在要做的就是配置.ebextensions脚本中的所有其他非之前执行的preinit hooks脚本,将重新执行(和潜在的撤销从变化)所有的preinit脚本.但是,我猜这会比它的价值更麻烦,因为可能会出现意想不到的副作用.

无论如何,这些是我试图做类似事情的发现.希望这有助于(尽管事实上我没有在技术上解决你的问题)!