AWS Elastic Beanstalk 部署后脚本
Posted
技术标签:
【中文标题】AWS Elastic Beanstalk 部署后脚本【英文标题】:AWS Elastic Beanstalk Post Deploy Script 【发布时间】:2015-07-28 01:53:10 【问题描述】:我正在尝试将部署后脚本添加到我的 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
,并在所有日志中查找了这些文件周围的关键字。尽管如此,还是没有运气。
提前感谢任何帮助/建议!
参考资料:
https://forums.aws.amazon.com/thread.jspa?threadID=137136 http://www.dannemanne.com/posts/post-deployment_script_on_elastic_beanstalk_restart_delayed_job【问题讨论】:
【参考方案1】:放置配置文件的正确位置是应用中的.ebextensions
目录,而不是. elasticbeanstalk
。然后,您应该会在 /opt/elasticbeanstalk/hooks/appdeploy/post 目录中看到您的 shell 脚本。
如论坛帖子中所述 “将文件直接放入 hooks 目录是有风险的,因为这不是记录在案的方法,在某些容器中有所不同,并且将来可能会改变”
【讨论】:
啊,哇!愚蠢的错误。谢谢!以上是关于AWS Elastic Beanstalk 部署后脚本的主要内容,如果未能解决你的问题,请参考以下文章
部署到 AWS Elastic Beanstalk 后如何访问 servlet?
在 AWS Elastic Beanstalk 上部署后运行 PHP 脚本
在 AWS Elastic Beanstalk 上部署 Laravel 8 后得到 404
“数据库主机数组为空。”在 AWS Elastic Beanstalk 上部署 Laravel 项目后
AWS Elastic Beanstalk - PHP 脚本在部署新版本后无法执行
在 AWS Elastic Beanstalk 中部署后浏览 https 时,Laravel 资产、路由和 url() 不起作用