Я не уверен, насколько это уместно, но какую платформу вы используете 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
приходят гораздо позже. (Для чего это стоит, this blog post может помочь в дальнейшем поможет понять, какие крючки получить работать в какое время)
Что вы могли бы потенциально сделать это настроить .ebextensions
скрипт для выполнения перед всеми другими не- preinit
hooks
сценариев, которые будут ПЕРЕУСТАНОВКИ выполнить (и, возможно, отменить изменения) все сценарии preinit
. Тем не менее, я бы предположил, что это будет больше проблем, чем это стоит, поскольку из этого могут возникнуть непредвиденные побочные эффекты.
Во всяком случае, это мои находки, пытающиеся сделать что-то подобное. Надеюсь, это поможет (несмотря на то, что я технически не решил вашу проблему)!