上下文
我正在使用Elastic Beanstek部署一个非常简单的测试应用程序。我有几个我想使用apt安装的包。我已经包含了一个01_installations.sh
脚本,安装在. Platform/hooks/prebuild
目录中。当我压缩我的应用程序并部署到Elastic Beanstek时,日志确认预构建脚本运行,但它没有权限。
2020/08/12 21:03:46.674234 [INFO] Executing instruction: RunAppDeployPreBuildHooks
2020/08/12 21:03:46.674256 [INFO] Executing platform hooks in .platform/hooks/prebuild/
2020/08/12 21:03:46.674296 [INFO] Following platform hooks will be executed in order: [01_installations.sh]
2020/08/12 21:03:46.674302 [INFO] Running platform hook: .platform/hooks/prebuild/01_installations.sh
2020/08/12 21:03:46.674482 [ERROR] An error occurred during execution of command [app-deploy] - [RunAppDeployPreBuildHooks]. Stop running the command. Error: Command .platform/hooks/prebuild/01_installations.sh failed with error fork/exec .platform/hooks/prebuild/01_installations.sh: permission denied
问题
我的理解是,权限被拒绝是因为我没有添加chmod x
以使.sh文件可执行。正如有关平台挂钩的 AWS 文档所述:“使用 chmod x 对挂钩文件设置执行权限。(https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-linux-extend.html)。我的问题是:我该怎么做?
我只是将. sh文件放在目录中。我不会从其他任何地方调用它。我是否错过了一个简单的步骤?AWS留档让它看起来应该很简单。
以前的尝试
我尝试过的事情:
container_commands:
01_chmod1:
command: "chmod +x .platform/hooks/prebuild/01_installations.sh"
[RunAppDeployPreBuildHooks]. Stop running the command. Error: Command .platform/hooks/prebuild/chmod +x 01_installations.sh failed with error fork/exec .platform/hooks/prebuild/chmod +x 01_installations.sh: permission denied
我在这里回顾了这些想法,但没有一个真正包含足够完整的示例:
这在更新权限提交更改后对我有效。
此外,.config
文件中的命令将不起作用,因为这些命令将运行预部署,因此无法找到.sh
文件的路径。
通常在压缩部署包之前,在本地工作站上设置权限。
但是,如果您想在EB实例上这样做,那么您不能使用< code>container_commands来实现。原因是< code>container_commands在< code>prebuild之后执行。相反,您应该尝试使用< code >命令:
预生成文件在运行任何配置文件的命令部分中找到的命令之后运行,并在运行 Buildfile 命令之前运行。
确保您的文件在git中可执行
chmod +x path/to/file
git update-index --chmod=+x path/to/file
参考 来自 如何在GIT中为文件添加chmod权限?
我在使用 aws 的 beanstalk 和运行我的网络应用程序时遇到了问题。 我已经按照我上一个托管账户的方式设置了所有的东西,但是当我试图运行这个脚本时,在var/www/cgi-bin/server.pl的cgi-bin中出现了一个权限错误。 一定有什么地方我需要改变才能运行这个。 我已将权限设置为 755 到 cgi-bin 和 sever.pl 以及httpd中。我添加了conf 选项E
我在AWS托管了一个站点。我已经为弹性Beanstalk创建了一个RDS DB实例。在我的laravel应用程序的config/database.php文件中,我将数据库连接配置为: 现在,当我尝试通过SSHing运行到EC2实例时,我得到以下错误: SQLState[HY000][1049]未知数据库“MydBindEntifier”(SQL:select*from) “mydbidentifi
有没有办法使用现有的Amazon EC2实例创建Elastic Beanstek环境?
我正在尝试通过亚马逊弹性豆子(使用本教程)部署我的django应用程序,但收到以下错误。 错误:Elastic Beanstalk找不到任何平台。确保您拥有访问Elastic Beanstalk所需的权限。 我该如何解决这个问题? 谢谢
我目前正在部署Django 这是我的git仓库:https://github.com/ujin43255252/davidgram
我正在工作一个AWS弹性Beanstalk应用程序,上传文件到AWS S3桶。Beanstalk应用程序是一个.NET Core Web API应用程序,我遵循了本指南(http://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-netcore.html),并且在磁盘上有一个凭据文件,用于本地开发,其中有我的共享访