我正在尝试将部署后脚本添加到我的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
,并在所有日志中eb-tools.log
这些文件周围的关键字。 仍然没有运气。
在此先感谢您的帮助/建议!
参考文献:
放置配置文件的正确位置是应用程序中的.ebextensions
目录,而不是. elasticbeanstalk
. elasticbeanstalk
。 然后,您应该在/ opt / elasticbeanstalk / hooks / appdeploy / post目录中看到您的Shell脚本。
如论坛文章中所述:“将文件直接拖放到钩子目录中是有风险的,因为这不是已记录的方法,在某些容器中有所不同,并且将来可能会更改”