目前正在部署我得到:
挂钩/opt/elasticbeanstalk/hooks/preinit/30directories.sh失败
我想完全使用.ebextensions删除钩子,我目前正在使用:
/。ebextensions / 01-除去-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
答案 0 :(得分:5)
我不确定这是多么相关,但您使用的是ElasticBeanstalk的平台? 对于64bit Amazon Linux 2016.09 v2.3.0 running Docker 1.11.2
具体(可能还有其他平台),我不相信有任何方法可以按照您描述的方式执行此操作。
不幸的是,在{ElasticBeanstalk将preinit
注入您的环境之前,.ebextensions
脚本执行得很好,并且它们仅在启动新实例时运行。要确认这一点,您可以在新部署的ElasticBeanstalk实例上检查/var/log/eb-activity.log
,该实例向您显示与AWS为您记录的引导过程相关的所有内容。在此日志文件中搜索Initialization/PreInitStage0/PreInitHook
,然后搜索.ebextensions
;你会看到preinit
脚本确实在大多数其他所有内容之前执行,并且.ebextensions
文件来得晚得多。 (对于它的价值,this blog post可能有助于进一步帮助了解哪些钩子在哪些时间运行)
可能做的事情是将.ebextensions
脚本配置为在将重新执行的所有其他非preinit
hooks
脚本之前执行(并且可能撤消所有preinit
脚本的更改。但是,我猜这会比它的价值更麻烦,因为可能会出现意想不到的副作用。
无论如何,这些是我试图做类似事情的发现。希望这有助于(尽管事实上我还没有从技术上解决你的问题)!