子目录中的弹性beanstalk节点应用程序

时间:2016-10-29 20:58:14

标签: node.js git amazon-web-services elastic-beanstalk amazon-elastic-beanstalk

如何强制弹性beanstalk nodejs应用程序在子目录服务器中查找服务器应用程序?

我正在一个git项目中构建一个具有服务器和客户端应用程序的现代SPA。因此,弹性beanstalk不能在存储库的根目录中查找服务器应用程序,而是在子文件夹./server/中查找。客户端SPA在./client/中编码,并在构建过程中构建到服务器文件夹结构中的公用文件夹中。完全构建的客户端版本签入git,不得在roleout时构建。

所以弹性beanstalk必须在npm install和npm在服务器子目录中运行。

示例文件夹结构:

~ git-root
|-- client
|    |-- ...
|
|-- server
|   |-- package.json
|   |-- src
|   |-- public
|   |-- (node_modules)

2 个答案:

答案 0 :(得分:1)

如果您想要的 package.json 位于子目录中而不是推荐的根级别位置,您可以在 git 根目录中添加 Buildfile 和 Profile 文件,分别向 AWS Elastic Beanstalk 提供自定义构建和运行命令:

~ git-root
|-- client
|    |-- ...
|
|-- server
|   |-- package.json
|   |-- src
|   |-- public
|   |-- (node_modules)
|
|--Buildfile
|--Procfile

构建文件

install: cd server && npm install

Procfile

web: cd server && npm run

AWS documentation for Buildfile & Procfile

答案 1 :(得分:0)

Elastic beanstalk正在使用一些可以更改的服务器配置。要更改该配置,您可以ssh到该计算机,或者您可以强制每个应用程序部署正确配置。

第二种方法是将自定义代码添加到应用根文件夹中的.ebextensions文件夹中。

有关自定义命令.ebextensions的更多信息可以在这里找到: