在 ElasticBeanstalk 上运行 Grunt

     2023-03-04     171

关键词:

【中文标题】在 ElasticBeanstalk 上运行 Grunt【英文标题】:Run Grunt on ElasticBeanstalk 【发布时间】:2015-09-25 05:36:00 【问题描述】:

我有一个节点应用程序需要 grunt 执行“构建”才能成功执行应用程序。 (运行源代码的 concat/minification/revving 等)。我已经在具有 SSH 访问权限的 EC2 实例上运行它,因为我可以通过 SSH 进入目录并在部署过程中运行 Grunt。然而,为了自动化这一点,我现在将应用程序移动到 ElasticBeanstalk 并且我很难让应用程序成功运行 grunt。迁移到 EB 的原因是让 SSH 密钥关闭实时服务器,因此这些 EB 实例设置为没有 ssh 访问权限。

似乎没有可用的官方文档,任何人都可以为我指出一个能够实现上述目标的好方向吗?我需要在应用程序启动之前执行 grunt,以便应用程序有可用的文件(否则会出现 404)。

【问题讨论】:

与我的建议相比,这是一个有点相关的问题,它提供了另一种方法:***.com/questions/23444288/… 【参考方案1】:

运行 grunt 与运行 gulp 非常相似,因此,我将在下面包含我的配置。

它位于我的项目根目录下的 .ebextensions 文件夹中,名为 01run.config。您可以有多个配置文件,它们将按字母顺序运行(因此 01 在开头。)

这基本上只是指示进程按顺序运行这些命令,同样,它是按字母顺序完成的,所以我相应地命名了它们。

commands:
  01get_sudo:
    command: echo Defaults:root \!requiretty >> /etc/sudoers
  02npm_install:
    command: sudo yum -y --enablerepo=epel install nodejs npm
  03npm_install_bower:
    command: sudo npm install -g bower
  04npm_install_gulp:
    command: sudo npm install -g gulp
  05yum_install_git:
    command: sudo yum -y --enablerepo=epel install git
container_commands:
  01bower_install:
    command: sudo bower install --allow-root
  02gulp_sass:
    command: sudo gulp sass
    获取 sudo 访问权限 用 yum 安装 node.js 和 npm 安装 bower(我的 gulp 进程需要 bower) 安装 gulp 安装 git(bower 需要) 然后我运行两个容器命令,它们发生在 npm install 之后和 npm start 之前:
      凉亭安装 一饮而尽

在您的情况下,您只需删除 bower 和 git 安装,安装 grunt-cli,然后运行 ​​grunt。


自从这样做以来,我通过在部署并将构建的文件提交到 git 存储库之前预先完成所有操作,消除了对上述过程的需求。这至少是一次很好的学习体验,让我可以更好地控制由 beanstalk 部署的 ec2 实例。

【讨论】:

谢谢!我错过了 sudo 部分并将 dist 文件提交到 repo 是我想要避免的。 嗨,凯文,我很好奇你的最后一段。为什么你觉得将构建文件提交到 git 比运行 gulp 更合适? 如果我提交构建文件,我不必担心很少会发生构建失败,并且会获得更快的启动时间。【参考方案2】:

这并不能完全回答问题,但根据 Kevin B 的最后一句话,我在 Elastic Beanstalk 之外执行繁重的任务,包括构建,并使用 .ebignore 来控制部署。当 .ebignore 存在时,eb deploy 会跟随它而不是 .gitignore。这使我可以在 Elastic Beanstalk 之外控制构建过程,同时将构建工件排除在我的 git 存储库之外。

例如,如果构建工件转到 .build/

.gitignore

node_modules
.elastic_beanstalk
...
.build

.ebignore

node_modules
.elastic_beanstalk
...
.git

记得在 .ebignore 中添加 .git 以防止本地 git repo 元数据被部署。此外,我发现eb deploy 会评估排除文件夹中的所有子文件夹,从而不必要地减慢部署速度。在运行 eb deploy 之前,我不得不暂时将 node_modules 移到别处以加快速度。

【讨论】:

502 Bad Gateway nginx/1.14.1 elasticbeanstalk .net core app 在 docker 上运行

】502BadGatewaynginx/1.14.1elasticbeanstalk.netcoreapp在docker上运行【英文标题】:502BadGatewaynginx/1.14.1elasticbeanstalk.netcoreapprunningondocker【发布时间】:2019-11-2503:02:42【问题描述】:我在docker中运行.net核心应用程序,当我将映像部署到亚马逊... 查看详情

在 AWS ElasticBeanstalk 上部署 - 在启动服务器之前运行自定义 npm 脚本?

】在AWSElasticBeanstalk上部署-在启动服务器之前运行自定义npm脚本?【英文标题】:DeployonAWSElasticBeanstalk-runcustomnpmscriptbeforestartingserver?【发布时间】:2018-12-2915:29:17【问题描述】:我一直在尝试将我的nuxt通用应用程序部署到AWS弹... 查看详情

在 AWS 上使用 ElastiCache 和 ElasticBeanstalk 配置 Redis

】在AWS上使用ElastiCache和ElasticBeanstalk配置Redis【英文标题】:ConfiguringRediswithElastiCacheandElasticBeanstalkonAWS【发布时间】:2015-10-1806:03:12【问题描述】:我有一个在ElasticBeanstalk上运行的Tomcat+Redis应用程序。在我的代码中,我使用创... 查看详情

在 elasticbeanstalk 上安装 npm canvas - npm 安装错误

】在elasticbeanstalk上安装npmcanvas-npm安装错误【英文标题】:Installingnpmcanvasonelasticbeanstalk-npminstallerror【发布时间】:2014-11-2120:46:33【问题描述】:我正在尝试通过Elasticbeanstalk部署在EC2上运行的node.js服务器。我遇到的问题是在重建... 查看详情

如何在 Elasticbeanstalk 环境中运行的 docker 容器中承担 AWS 角色?

】如何在Elasticbeanstalk环境中运行的docker容器中承担AWS角色?【英文标题】:HowtoassumeAWSroleindockercontainerrunonElasticbeanstalkenvironment?【发布时间】:2018-07-2321:40:03【问题描述】:我使用带有多容器版本的elasticbeanstalk,并且我有内部... 查看详情

在 ElasticBeanstalk 中的 nginx 服务器上启用 cors?

】在ElasticBeanstalk中的nginx服务器上启用cors?【英文标题】:enablingcorsonanginxserverinElasticBeanstalk?【发布时间】:2018-06-1819:32:45【问题描述】:我正在将我的Nodejs应用程序部署到运行nginx的AWSElasticBeanstalk。该应用程序本质上是一个ap... 查看详情

在 Amazon Elasticbeanstalk 中运行 netty 应用程序

】在AmazonElasticbeanstalk中运行netty应用程序【英文标题】:RunningnettyapplicationinAmazonElasticbeanstalk【发布时间】:2013-04-2505:04:12【问题描述】:我有一个在端口44080上运行并构建为.jar文件的常规netty应用程序服务器。我想使用弹性beans... 查看详情

如何在 elasticbeanstalk 上使用多 docker 配置进行容器回滚

】如何在elasticbeanstalk上使用多docker配置进行容器回滚【英文标题】:Howtodocontainerrollbacksusingamultidockerconfigurationonelasticbeanstalk【发布时间】:2017-05-0711:47:42【问题描述】:我正在使用EB运行多个Docker容器,其中使用了multidockerconfig... 查看详情

如何在 Elastic Beanstalk 实例上运行任意 npm 脚本

】如何在ElasticBeanstalk实例上运行任意npm脚本【英文标题】:HowdoIrunanarbitrarynpmscriptonanElasticBeanstalkinstance【发布时间】:2017-03-1121:00:07【问题描述】:我正在尝试调试在ElasticBeanstalk上运行的Node应用程序的问题。该问题仅在EB下出... 查看详情

Celery 可以在 Elastic Beanstalk 上运行吗?

】Celery可以在ElasticBeanstalk上运行吗?【英文标题】:CanCeleryrunonElasticBeanstalk?【发布时间】:2015-01-0704:43:39【问题描述】:我正在寻找一种在ElasticBeanstalk环境中运行Celery的直接方法。这是否存在,还是我需要改用SQS?我尝试在.co... 查看详情

Ruby on Rails 与 Amazon ElasticBeanstalk

】RubyonRails与AmazonElasticBeanstalk【英文标题】:RubyonRailswithAmazonElasticBeanstalk【发布时间】:2013-03-0421:12:52【问题描述】:我只是想知道为什么很难在awsElaticbeanstalk上运行我的ROR应用程序?我的应用程序在localhost上运行良好,但是... 查看详情

在 Elastic Beanstalk 上部署 WordPress?

】在ElasticBeanstalk上部署WordPress?【英文标题】:DeployingWordPressonElasticBeanstalk?【发布时间】:2012-09-1018:22:11【问题描述】:假设我在Wordpress中创建了一个站点,该站点在ElasticBeanstalk上运行。现在,在正在运行的应用程序上,我将... 查看详情

Elasticbeanstalk 在单个 Python 实例上配置 HTTPS:模板中不允许使用空值

】Elasticbeanstalk在单个Python实例上配置HTTPS:模板中不允许使用空值【英文标题】:ElasticbeanstalkconfiguringHTTPSonSingleInstanceofPython:nullvaluesarenotallowedintemplates【发布时间】:2016-04-2109:22:01【问题描述】:我已经在EB(单实例)环境中部... 查看详情

从在 ElasticBeanstalk 中运行的 Flask 应用程序使用 AWS

】从在ElasticBeanstalk中运行的Flask应用程序使用AWS【英文标题】:UsingAWSfromaFlaskApprunninginElasticBeanstalk【发布时间】:2021-01-3013:27:05【问题描述】:目前,我有一个在Flask上开发的应用程序。此应用程序使用使用boto3库的AWS服务,该... 查看详情

环境变量 ElasticBeanstalk 多容器

】环境变量ElasticBeanstalk多容器【英文标题】:EnvironmentvariableElasticBeanstalkMulticontainer【发布时间】:2021-12-1606:14:08【问题描述】:我正在尝试通过在ElasticBeanstalk上使用docker-compose和在64位AmazonLinux2(v3)上运行的新Docker来部署2个容器... 查看详情

在 Elastic Beanstalk 上运行时如何获取服务器 URL?

】在ElasticBeanstalk上运行时如何获取服务器URL?【英文标题】:HowtogetserverURLwhenrunningonElasticBeanstalk?【发布时间】:2015-04-1716:08:00【问题描述】:我使用restify创建部署到ElasticBeanstalk的节点API。varserver=restify.createServer(name:\'MyAPI\');se... 查看详情

Django Elasticbeanstalk 应用程序在自动缩放期间返回 404

】DjangoElasticbeanstalk应用程序在自动缩放期间返回404【英文标题】:DjangoElasticbeanstalkApplicationreturns404duringautoscale【发布时间】:2018-08-2209:00:18【问题描述】:我有一个在弹性beantalk上运行的django应用程序。当我从命令行部署时,... 查看详情

使用 Django 在 Elastic Beanstalk 上运行 Python 的 Celery

】使用Django在ElasticBeanstalk上运行Python的Celery【英文标题】:RunningPython\'sCeleryonElasticBeanstalkwithDjango【发布时间】:2012-09-3014:01:36【问题描述】:我正在考虑迁移到ElasticBeanstalk(考虑到定价)。问题是我不知道如何在部署到服务... 查看详情