我试图将部署后的脚本添加到我的Elastic Beanstalk中。我已经阅读了一些博客文章(阅读参考资料),其中提到将配置文件添加到.elasticbeanstalk
目录。配置文件应该创建一个shell脚本并将其复制到目录:
/opt/elasticbeanstalk/hooks/appdeploy/post
在我的.elasticbeanstalk
文件夹中,我有以下文件:
config.yml
branch-defaults:
staging:
environment: env-name
global:
application_name: app-name
default_ec2_keyname: aws-eb
default_platform: 64bit Amazon Linux 2015.03 v1.3.1 running Ruby 2.2 (Passenger Standalone)
default_region: us-west-2
profile: eb-cli
sc: git
test.config(我添加的配置,用于测试部署后脚本的工作原理):
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/01_test.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
# This is my test shell script
我运行eb deploy
之后,shell脚本不会被复制到上面的目录中。我的/opt/elasticbeanstalk/appdeploy/post
目录为空。 .elasticbeanstalk
目录中的/var/app/current/
文件夹正确无误。我也无法在引用新脚本或错误的日志文件中看到任何内容。我已经检查了eb-tools.log
,eb-activity.log
,cron
,并为这些文件周围的关键字搜索了所有日志。但是,没有运气。
提前感谢您的任何帮助/建议!
参考文献:
答案 0 :(得分:4)
删除配置文件的正确位置是应用中的.ebextensions
目录,而不是. elasticbeanstalk
。然后,您应该在/ opt / elasticbeanstalk / hooks / appdeploy / post目录中看到您的shell脚本。
正如论坛帖子所述 “直接将文件放入钩子目录是有风险的,因为这不是文档化的方法,在某些容器中有所不同,并且可能在将来发生变化”