如何将 NodeJS 部署自定义到 Elastic Beanstalk?
Posted
技术标签:
【中文标题】如何将 NodeJS 部署自定义到 Elastic Beanstalk?【英文标题】:How do you customize a NodeJS deployment to Elastic Beanstalk? 【发布时间】:2018-06-11 18:16:41 【问题描述】:我有一个用 NodeJS 为 web 服务器和前端的 Angular 编写的 web 应用程序。
结构是这样的
musicapp
|-- server
| |--- src/
| |--- node_modules/
| |--- package.json
|--- client
|--- src/
|--- node_modules/
|--- package.json
当我使用 eb deploy
部署到 Elastic Beanstalk 时,什么都没有发生,我意识到这一定是因为 Elastic Beanstalk 的默认操作是调用 npm install
和 npm start
但在我的情况下,这并没有在 root 上调用时执行任何操作。
所以我的问题是,我如何告诉 Elastic Beanstalk:在部署时,cd
到客户端并调用 npm install
、npm run build
然后 cd
到服务器并调用 npm install
、@987654330 @ ?
我在 EB 文档中找不到任何解释如何做到这一点的内容。
【问题讨论】:
【参考方案1】:在您的根文件夹中创建一个名为 .ebextensions
的目录,并在该文件夹中创建一个名为 01_npm.config
的文件(例如)。
在该 yaml 文件中,您可以通过以下方式指定命令:
container_commands:
01_client:
command: "cd ./server && npm install && npm run build"
leader_only: true
02_server:
command: "cd ./client && npm install && npm run build"
leader_only: true
当您运行 eb deploy
时,Elastic Beanstalk 将自动执行这些命令。
有关详细信息,请参阅: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html
【讨论】:
这很有帮助,谢谢,虽然我认为这些是 YAML 文件而不是 JSON。以上是关于如何将 NodeJS 部署自定义到 Elastic Beanstalk?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 node.js 应用程序部署到 AWS Elastic Beanstalk
使用自定义扩展将 Ruby 应用程序部署到 Elastic Beanstalk,无法加载编译文件
将 NodeJS 部署到 Elastic Beanstalk 时出现 NPM 错误