amazon-web-services - .ebextensions 删除 preinit 脚本

标签 amazon-web-services amazon-ec2 amazon-elastic-beanstalk

目前在部署时我得到:

Hook /opt/elasticbeanstalk/hooks/preinit/30directories.sh failed

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

/.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

最佳答案

我不确定这有多相关,但您使用的是哪个 ElasticBeanstalk 平台? 对于运行 Docker 1.11.2 的 64 位 Amazon Linux 2016.09 v2.3.0 特别是(可能还有其他平台),我不相信有任何方法可以做到这一点你正在描述的。

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

您可以可能做的是配置一个.ebextensions 脚本在所有其他非preinit hooks 之前执行> 将重新执行(并可能撤消更改)所有 preinit 脚本的脚本。但是,我猜这会带来更多麻烦,因为这可能会产生意想不到的副作用。

无论如何,这些是我试图做类似事情的发现。希望这对您有所帮助(尽管我还没有从技术上解决您的问题)!

关于amazon-web-services - .ebextensions 删除 preinit 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39192089/

相关文章:

python - aws - "Unable to import module ' 进程' :/var/task/numpy/core/multiarray. 所以:ELF header 无效”

python - 如何从列表中停止 EC2 实例

amazon-web-services - 用于出站 API 调用的静态 IP

node.js - 将 websocket 与 Elastic beanstalk、nginx 和 node.js 结合使用时出现问题

python - AWS boto - 实例状态/快照状态不会更新 Python While Loop

linux - 从 AWS 获得 plesk 许可证

amazon-web-services - AWS ALB 在运行 express/nginx 的 ECS 服务前出现间歇性 502 网关错误

tomcat - AWS 数据传输问题

amazon-web-services - 无法访问我在 AWS Elastic beanstalk 上的 docker 中部署的 prometheus 和 grafana

amazon-web-services - 如何将 'auto assign public ip' 选项添加到 2 级实例构造