我有一个节点应用程序,需要 grunt 进行“构建”,然后应用程序才能成功执行。 (运行源代码的连接/缩小/加速等)。我已经在具有 SSH 访问权限的 EC2 实例上运行了它,因为我可以通过 SSH 进入目录并在部署过程中运行 Grunt。然而,为了自动化此操作,我现在将应用程序移至 ElasticBeanstalk,但我很难让应用程序成功运行 grunt。迁移到 EB 的原因是让 SSH 密钥远离实时服务器,以便这些 EB 实例设置为没有 ssh 访问权限。
似乎没有可用的官方文档,有人能为我指明一个能够实现上述目标的好方向吗?我需要在应用程序启动之前执行 grunt,以便应用程序具有可用的文件(否则会出现 404)。
运行 grunt 与运行 gulp 非常相似,因此,我将在下面包含我的配置。
这是在一个.eb扩展名我的项目根目录下的文件夹,名为01运行配置。您可以有多个配置文件,它们将按字母顺序运行(因此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)
- 安装吞咽
- 安装git(bower需要)
- i then run two container commands, which happen after npm install and before npm start:
- 凉亭安装
- 咕噜咕噜
在您的情况下,您只需删除 Bower 和 git 安装,安装 grunt-cli,然后运行 grunt 即可。
自从这样做以来,我通过在部署构建的文件并将其提交到 git 存储库之前预先完成所有工作,消除了对上述过程的需求。这至少是一次很好的学习经历,让我能够更好地控制由 beanstalk 部署的 ec2 实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)